时间轴

2025-11-11

init


题目:

滑动窗口:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <vector>
#include <climits>
#include <algorithm>
using std::vector;

class Solution {
public:
int minSubArrayLen(int target, vector<int>& nums) {
int n = nums.size();
int left = 0;
int curr_sum = 0;
int res = INT_MAX;

for (int right = 0; right < n; ++right) {
curr_sum += nums[right];

// 当窗口内的和 >= target 时,尝试收缩左边界
while (curr_sum >= target) {
res = std::min(res, right - left + 1);
curr_sum -= nums[left];
left++;
}
}

return (res == INT_MAX ? 0 : res);
}
};