算法练习:209. 长度最小的子数组
题目链接:209. 长度最小的子数组。
这里ans来统计最小长度,所以初始值设置为INT_MAX.最后如果ans结果还是INT_MAX时,说明无此数组。
class Solution {
public:
int minSubArrayLen(int target, vector<int>& nums) {
if (nums.size() == 0)
{
return 0;
}
int start = 0;
int end = 0;
int sum = nums[start];
int ans = INT_MAX;
while (start != nums.size() && end != nums.size())
{
if (sum < target)
{
end++;
if(end!=nums.size()) sum += nums[end];
}
else
{
ans = min(ans, end - start + 1);
sum -= nums[start];
start++;
}
}
if(ans == INT_MAX)
{
return 0;
}
return ans;
}
};