LeetCode--长度最小的子数组

题目:

解析:

我们可以用滑动窗口的思想,通过一个动态的j表示结束位置,一个动态的i表示起始位置,假设满足初始条件的数组大小result为无穷大,通过j先遍历数组并求和,用一个sum存储元素的和,当sum的值大于等于target的值时,说明该区间是符合条件的区间,这时候通过i的右移(i++)看是否这个区间的能否更小(i右移的过程中sum要减去i下标所对应的值),区间的长度subl=j-i+1,用它和result进行比较选最小值为新数组的长度(如果不存在满足条件的数组,最后一定要把result的值改为0);

代码:

java 复制代码
class Solution {
    public int minSubArrayLen(int target, int[] nums) {
        int i = 0,sum = 0;
        int result = Integer.MAX_VALUE;
        for(int j = 0;j <= nums.length-1; j++){ 
            sum += nums[j];
            while(sum >= target){
                int subl = j - i + 1;
                result =Math.min(result,subl);
                sum -= nums[i];
                i++;
            }
        }
        return result == Integer.MAX_VALUE ? 0 : result;
    }
}
相关推荐
酉鬼女又兒14 小时前
HTML基础实例样式详解零基础快速入门Web开发(可备赛蓝桥杯Web应用开发赛道) 助力快速拿奖
前端·javascript·职场和发展·蓝桥杯·html·html5·web
OKkankan14 小时前
撕 STL 系列:封装红黑树实现 mymap 和 myset
java·c++·算法
xh didida14 小时前
数据结构--实现链式结构二叉树
c语言·数据结构·算法
ab15151714 小时前
3.15二刷基础90、105、106、110
数据结构·c++·算法
C蔡博士14 小时前
最近点对问题(Closest Pair of Points)
java·python·算法
白太岁14 小时前
算法:链表:指针变化与环
数据结构·算法·链表
寻寻觅觅☆14 小时前
东华OJ-进阶题-10-分解质因数(C++)
数据结构·c++·算法
是梦终空11614 小时前
模板编译期机器学习
开发语言·c++·算法
killer Curry14 小时前
Polar CTF PWN 简单(1)(持续更新)
笔记·python·算法