概要
力扣题解:长度最小子数组,有序数组的平方`
两道题的解法
class Solution:
def minSubArrayLen(self, target: int, nums: List[int]) -> int:
n = len(nums)
ans = inf
c = left = 0
for right, i in enumerate(nums):
c += i
while c - nums[left] >= target:
c -= nums[left]
left += 1
if c >= target:
ans = min(ans, right-left+1)
return ans if ans <= n else 0
长度最小的子数组
class Solution:
def sortedSquares(self, nums: List[int]) -> List[int]:
for i in range(len(nums)):
nums[i]=nums[i]*nums[i]
return sorted(nums)
有序数组的平方
小结
长度最小数组可以进一步优化
class Solution:
def sortedSquares(self, nums: List[int]) -> List[int]:
return sorted([x ** 2 for x in nums])
但上面的写法更容易看懂