209.子数组最小的长度
#include<iostream>
#include<vector>
using namespace std;
int main() {
vector<int> nums={2,3,1,2,4,3};
int target=1;
int left=0,right=0;
int sum=0;int leftIndex=-1,rightIndex=-1;
int ans=nums.size()+1;
for(;right<nums.size();right++){
sum+=nums[right];
while(sum-nums[left]>=target){
sum-=nums[left];
left++;
}
if(sum>=target){
ans=min(ans,right-left+1);
leftIndex=left,rightIndex=right;
}
}
if(ans>nums.size())printf("该数组不存在和大于等于target的子数组");
else printf("该数组存在和大于等于target的子数组,满足条件的子数组的最短长度为:%d 左、右端点index分别为:%d %d",ans,leftIndex,rightIndex);
return 0;
}