题目描述: 给定一个含有 n 个正整数的数组和一个正整数 s ,找出数组中满足其和 ≥ s 的长度最小的连续子数组的长度。如果不存在符合条件的连续子数组,返回 0
示例:
输入: s = 7, nums = [2,3,1,2,4,3]
输出: 2
这道题是一道典型的双指针滑动窗口的题目,记录一下:
def minSubArrayLen(s, nums):
if not nums:
return 0
start, end = 0, 0
temp = 0
ans = float('inf')
while end < len(nums):
temp += nums[end]
end += 1
while temp >= s:
ans = min(ans, end-start)
temp -= nums[start]
start += 1
if ans == float('inf'): return 0
return ans