虽然是在牛客网上面但是还是可以发leetcode的题: 题目链接:https://leetcode.cn/problems/minimum-size-subarray-sum/ 直接上AC代码:
public:
int minSubArrayLen(int target, vector<int>& nums) {
//find PreSum Array?
int len=nums.size();
int PreSum[len+1];
PreSum[0]=0;
for(int i=1;i<=len;i++){
PreSum[i]=PreSum[i-1]+nums[i-1];
}
if(PreSum[len]<target){
return 0;
}
if(PreSum[len]==target){
return len;
}
int right=0;
int left=0;
int minLen=0;
while(right<=len){
if(PreSum[right]<target){
right++;
continue;
}
while(PreSum[right]-PreSum[left]>=target){
if(minLen==0||right-left<minLen){
minLen=right-left;
}
left++;
}
right++;
}
return minLen;
}
};