思路
聯想到滑動窗口法。左窗口的值為0,遍歷數組對數組求和,當數組的和大于等于target的時候,窗口要收縮,計算子數組的長度,并及時更新最小的長度,左窗口右移。
class Solution:def minSubArrayLen(self, target: int, nums: List[int]) -> int:if sum(nums)<target:return 0n=len(nums)ans=n i=0total=0for j in range(n):total+=nums[j]while total>=target:sub=j-i+1 #子數組的長度ans=min(ans,sub)total-=nums[i]i+=1return ans