LeetCode209:长度最小的子数组

题目描述

给定一个含有 n 个正整数的数组和一个正整数 target 。

找出该数组中满足其总和大于等于 target 的长度最小的 连续

子数组

numsl, numsl+1, ..., numsr-1, numsr ,并返回其长度。如果不存在符合条件的子数组,返回 0 。

示例

输入:target = 7, nums = 2,3,1,2,4,3

输出:2

解释:子数组 4,3 是该条件下的长度最小的子数组。

解题思想

使用滑动窗口

代码

cpp 复制代码
class Solution {
public:
    int minSubArrayLen(int target, vector<int>& nums) {
        int sum = 0;
        int i = 0;
        int result = INT32_MAX;
        for (int j = 0; j < nums.size(); j++) {
            sum += nums[j];
            while (sum >= target) {
                result = min(result, j - i + 1);
                sum-=nums[i];
                i++;
            }
        }
        return result == INT32_MAX ? 0 : result;
    }
};
相关推荐
w_zero_one3 小时前
递归算法(一)
java·开发语言·算法
圣保罗的大教堂3 小时前
leetcode 3736. 最小操作次数使数组元素相等 III 简单
leetcode
文丑颜不良啊4 小时前
LeetCode1881~1990题目解析
java·leetcode
风影同志783245 小时前
20 个比特能装下多少行情?——实测拆解 Kronos 的 K 线分词器
算法
写的都是BUG5 小时前
APK 里的钥匙,一直就放在门口:聊聊加固真正该做什么
前端·算法
地平线开发者6 小时前
CLIP 的零样本分类:一组文本如何变成图像分类器?
算法
京东云开发者6 小时前
从“会生成”到“能生产”:萤火虫 AIGC 平台的 AI Infra 实践
算法·aigc·产品
youshi66686 小时前
PID——算法改进
算法
文丑颜不良啊7 小时前
LeetCode1861~1880题目解析
java·leetcode
文丑颜不良啊7 小时前
LeetCode1921~1940题目解析
java·leetcode