Cover image for 面试经典150题 P209 长度最小的子数组

面试经典150题 P209 长度最小的子数组


时间轴

时间轴

2025-11-11

init

滑动窗口

题目:

滑动窗口:

12345678910111213141516171819202122232425262728
#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);    }};
评论加载中…