长度最小的子数组
解题思路:
1.
i
,j
维护一段区间,sum为这段区间和2如果说sum区间和大于target,那么指针
j
就可以后移。直到区间和达到题目要求的范围3.返回区间大小
c++
class Solution {
public:
int minSubArrayLen(int target, vector<int>& nums) {
int ans = INT_MAX;
for(int i = 0,j = 0,sum = 0; i < nums.size();i++){
sum += nums[i];
while(sum - nums[j] >= target) sum -= nums[j++];
if(sum >= target){
ans = min(ans,i-j+1);
}
}
if(ans == INT_MAX) ans=0;
return ans;
}
};