class Solution {
public:
int minSubArrayLen(int s, vector<int>& nums) {
int n = nums.size();
int res = n+5;
int l = 0, r = 0;
int sum = 0;
while (r < n) {
while (sum < s && r < n) {
sum += nums[r];
r++;
}
while (sum >= s && l < r) {
res = min(res, (r - l));
sum -= nums[l];
l++;
}
}
return res > n ? 0 : res;
}
};
双指针刷题模板
这里以
leetcode 209. 长度最小的子数组
为例我的双指针模板是 [l, r)的,即不包含右侧的r