力扣面试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;
    }
}
相关推荐
wabs66619 分钟前
关于单调栈【力扣503.下一个更大元素II的思考】
算法·单调栈
weedsfly20 分钟前
前端开发中的代理模式——从 Vue 3 响应式到日常开发
前端·javascript·面试
c2385622 分钟前
下篇:伸缩魔法!进阶吃透可变滑动窗口篇
c++·算法
txzrxz27 分钟前
关于二维/多维前缀和
算法
来一碗刘肉面32 分钟前
顺序表的按值查找
数据结构·c++·算法
咖啡八杯33 分钟前
GoF设计模式——状态模式
java·面试·架构
尘世中一位迷途小书童1 小时前
Cesium 涟漪扩散点:自定义材质,参数调对了才好看
前端·面试
zzz_23681 小时前
【Java实习面试算法冲刺】图论
java·算法·面试
大鱼>1 小时前
宠物监控数据安全与隐私保护:端到端加密与合规实践
人工智能·深度学习·算法·iot·宠物
被自己蠢哭1 小时前
BFS广度优先搜索问题:#P00496. 华为od机试—自动泊车
算法