LeetCode 209 长度最小的子数组(滑动窗口)

跟着carl学算法,本系列博客仅做个人记录,建议大家都去看carl本人的博客,写的真的很好的!
代码随想录
LeetCode 209 长度最小的子数组(滑动窗口)

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

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

子数组

numsl, numsl+1, ..., numsr-1, numsr\] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 示例 1: 输入:target = 7, nums = \[2,3,1,2,4,3

输出:2

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

示例 2:

输入:target = 4, nums = [1,4,4]

输出:1

示例 3:

输入:target = 11, nums = [1,1,1,1,1,1,1,1]

输出:0

for循环里面遍历的是子数组的终止位置,在通过while循环来找子数组的起始位置,直到找到最优解

java 复制代码
	public int minSubArrayLen(int target, int[] nums) {
        int i = 0;
        int result = Integer.MAX_VALUE;
        int sum = 0;
        for(int j = 0; j < nums.length; j++){
            sum += nums[j];
            while(sum >= target){
                sum -= nums[i];
                int subLen = j - i + 1;
                result = Integer.min(result, subLen);
                i++;
            }
        }
        return result == Integer.MAX_VALUE ? 0 : result;
    }
相关推荐
小辉同志9 分钟前
207. 课程表
c++·算法·力扣·图论
han_hanker14 分钟前
@Validated @Valid 用法
java·spring boot
小CC吃豆子15 分钟前
详细介绍一下静态分析工具 SonarQube
java
CheerWWW17 分钟前
深入理解计算机系统——位运算、树状数组
笔记·学习·算法·计算机系统
DevOpenClub19 分钟前
全国三甲医院主体信息 API 接口
java·大数据·数据库
言慢行善26 分钟前
SpringBoot中的注解介绍
java·spring boot·后端
一勺菠萝丶28 分钟前
管理后台使用手册在线预览与首次登录引导弹窗实现
java·前端·数据库
无巧不成书021841 分钟前
Java包(package)全解:从定义、使用到避坑,新手零基础入门到实战
java·开发语言·package·java包
身如柳絮随风扬1 小时前
SpringMVC 异常处理?Spring 父子容器?
java·spring·mvc
锅挤1 小时前
数据结构复习(第一章):绪论
数据结构·算法