问题链接
https://leetcode.cn/problems/minimum-size-subarray-sum/description/
解题思路
这是一个长度不定的滑动窗口。
我们需要设置一个left指针和right指针,分别指向滑动窗口的左边界和右边界。
我们判定当前的滑动窗口是否满足题意,如果不满足,则继续移动右指针。
如果满足题意,那开始移动左指针,试图寻找最小的满足条件的范围。
在这个过程中,更新res。
代码
class Solution: def minSubArrayLen(self, target: int, nums: List[int]) -> int: left_ptr, right_ptr = 0, 0 res = 0 cnt = 0 while right_ptr < len(nums): if nums[right_ptr] >= target: return 1 cnt += nums[right_ptr] while left_ptr < right_ptr and cnt >= target: res = min(res, right_ptr-left_ptr+1) if res != 0 else max(res, right_ptr-left_ptr+1) cnt -= nums[left_ptr] left_ptr += 1 right_ptr += 1 return res
标签:cnt,right,nums,209,res,数组,长度,ptr,left From: https://www.cnblogs.com/bjfu-vth/p/17053782.html