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;
    }
}
相关推荐
LDG_AGI2 分钟前
【搜索引擎】Elasticsearch(一):索引创建、数据插入、请求示例
人工智能·深度学习·算法·elasticsearch·机器学习·搜索引擎·推荐算法
6Hzlia4 分钟前
【Hot 100 刷题计划】 LeetCode 240. 搜索二维矩阵 II | C++ 巧妙利用单调性 (BST 法)
c++·leetcode·矩阵
达子6665 分钟前
Git中文文件名乱码显示SHA-1 哈希值
git·算法·哈希算法
VkN2X2X4b5 分钟前
算法性能测试的统计建模与误差估计的技术9
算法
笨笨饿11 分钟前
28_关于交叉学科的学习方法
linux·服务器·c语言·算法·学习方法·机械
小肝一下15 分钟前
每日两道力扣,day7
数据结构·c++·算法·leetcode·双指针·hot100·接雨水,四数之和
sz66cm15 分钟前
算法基础 -- Kahn 算法简介(C语言版本)
c语言·算法
小O的算法实验室1 天前
2026年ASOC,基于深度强化学习的无人机三维复杂环境分层自适应导航规划方法,深度解析+性能实测
算法·无人机·论文复现·智能算法·智能算法改进
郭涤生1 天前
STL vector 扩容机制与自定义内存分配器设计分析
c++·算法
༾冬瓜大侠༿1 天前
vector
c语言·开发语言·数据结构·c++·算法