给定一个含有n个整数的数组和一个正整数s,找出该数组中满足其和>=s的长度的连续的子数组,并返回其长度
如果不存在符合条件的子数组,返回0
解法:利用双指针来进行解 从nums[0]进行加,从0加到其和大于target的情况,此时记录cout取值与自己和j-i+1进行比较。然后找到长度,
自己的问题:返回的是长度,而非是其字符串,自己一会纠结于字符串的问题,未清楚其需要的问题,
数组中大部分解决方法要不是 用空间换时间或者双指针的问题
int minSubArraylen(int s, vector<int>& nums) {
int sum = 0;//其符合条件的最小个数
int i = 0;
int sublen = INT32_MAX;
for (int j = 0; j < nums.size(); j++) {
sum += nums[j];
while (sum >= s) {
/*if (sublen >= (j - i + 1)) {
sublen = j - i + 1;
}*/
sublen = sublen < (j - i + 1) ? sublen : (j - i + 1);
sum -= nums[i++];
}
}
return sublen == INT32_MAX ? 0 : sublen;
} //i