一、题目
- 长度最小的子数组
给定一个含有 n 个正整数的数组和一个正整数 target 。
找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。
二、思路
1.双指针
2.滑动窗口
三、代码
class Solution {
public:
int minSubArrayLen(int target, vector<int>& nums) {
int len = INT_MAX,sum = 0 ,n = nums.size();
for(int left = 0,right = 0;right< n;right++){
sum += nums[right];
while(sum >= target){
len = min(len,right-left+1);
sum = sum-nums[left];
left++;
}
}
return len==INT_MAX?0:len;
}
};