力扣面试150 长度最小的子数组 滑动窗口

Problem: 209. 长度最小的子数组

参考题解

滑动窗口

Java 复制代码
class Solution {
    public int minSubArrayLen(int target, int[] nums) {
        int n = nums.length;
        int ans = n + 1;
        int sum = 0; // 子数组元素和
        int left = 0; // 子数组左端点
        for (int right = 0; right < n; right++) { // 枚举子数组右端点
            sum += nums[right];
            while (sum >= target) { // 满足要求
                ans = Math.min(ans, right - left + 1);
                sum -= nums[left++]; // 左端点右移
            }
        }
        return ans <= n ? ans : 0;
    }
}
相关推荐
量子炒饭大师20 小时前
收集飞花令碎片——C语言关键字typedef
c语言·c++·算法
澡点睡觉20 小时前
【数据结构与算法Trip第4站】摩尔投票法
算法
行走的bug...1 天前
用图论来解决问题
算法·图论
9号达人1 天前
Java 13 新特性详解与实践
java·后端·面试
想用offer打牌1 天前
线程池踩坑之一:将其放在类的成员变量
后端·面试·代码规范
橙序员小站1 天前
搞定系统设计题:如何设计一个支付系统?
java·后端·面试
岁忧1 天前
(LeetCode 每日一题) 3541. 找到频率最高的元音和辅音 (哈希表)
java·c++·算法·leetcode·go·散列表
pusue_the_sun1 天前
每日算法题推送
算法·双指针
KyollBM1 天前
【Luogu】P9809 [SHOI2006] 作业 Homework (根号算法)
算法
jmxwzy1 天前
leetcode274.H指数
算法