LeetCode 209.长度最小的子数组
小于 1 分钟
题目描述:给定正整数数组nums和正整数target,找和>=target的长度最小的**连续子数组;**找到返回其长度,找不到返回0;
- 滑动窗口:[left, right],一层for:对于每一个固定的右界,找符合条件的左界,更新最小长度
class Solution {
public:
int minSubArrayLen(int target, vector<int>& nums) {
int fast = 0;
int slow = 0;
int sum = 0;
int result = nums.size() + 1;
while(fast < nums.size()) {
sum += nums[fast];
while(sum >= target) {
int temp = fast - slow + 1;
result = min(temp, result);
sum -= nums[slow];
++slow;
}
++fast;
}
if(result == nums.size() + 1) {
return 0;
}
return result;
}
};