题目要求如下
给定一个含有 n 个正整数的数组和一个正整数 target 。
找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。
这个题目如果暴力的话时间复杂度就超了,我们这里采用滑动窗口的方式解决。代码如下
在这里插入代码片
```class Solution {
public:
int minSubArrayLen(int target, vector<int>& nums) {
int len=INT32_MAX;;
int len2=0;
int j=0;
int sum=0;
for(int i=0;i<nums.size();i++){
sum=sum+nums[i];
while(sum>=target){
len2=i-j+1;
len=len<len2?len:len2;
sum=sum-nums[j++];
}
}
return len==INT32_MAX?0:len;
}
};