滑动窗口
class Solution {
public:
int minSubArrayLen(int target, vector<int>& nums) {
int ans = nums.size() + 1;
for (int right = 0, sum = 0, left = 0; right < nums.size(); right++) {
sum = sum + nums[right]; // 先累加 达到阈值
// 开始滑动
while (sum - nums[left] >= target) {
sum = sum - nums[left++];
}
if (sum >= target) {
ans = min(ans, right - left + 1);
}
}
return ans == nums.size() + 1 ? 0 : ans;
}
};
leetcode 209
于 2025-03-25 15:09:04 首次发布