LeetCode977 有序数组的平方|双指针解法
2026/9/3 20:42:19 网站建设 项目流程

1.27:
代码:class Solution:
def removeElement(self, nums: List[int], val: int) -> int:
slow = 0
for fast in range(len(nums)):
# fast找到不等于val的元素,就赋值给slow位置
if nums[fast] != val:
nums[slow] = nums[fast]
slow += 1
return slow


题解:
2.209
代码:from typing import List
class Solution:
def minSubArrayLen(self, target: int, nums: List[int]) -> int:
left = 0
cur_sum = 0
min_len = float(“inf”) # 记录最小长度,初始无穷大
for right in range(len(nums)):
cur_sum += nums[right]
# 当前窗口总和满足条件,不断收缩左边界,找更小窗口
while cur_sum >= target:
window_len = right - left + 1
if window_len < min_len:
min_len = window_len
cur_sum -= nums[left]
left += 1
# 如果min_len没变,说明没找到,返回0,否则返回min_len
return 0 if min_len == float(“inf”) else min_len



题解:

3.977:
代码:
from typing import List
class Solution:
def sortedSquares(self, nums: List[int]) -> List[int]:
left = 0
right = len(nums) - 1
# 结果数组,和原数组一样长
res = [0] * len(nums)
# k 指向结果数组的末尾,从后往前放最大的数
k = len(nums) - 1
while left <= right:
left_sq = nums[left] * nums[left]
right_sq = nums[right] * nums[right]
if left_sq > right_sq:
res[k] = left_sq
left += 1
else:
res[k] = right_sq
right -= 1
k -= 1
return res


题解:

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询