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;
    }
}
相关推荐
We་ct2 小时前
LeetCode 48. 旋转图像:原地旋转最优解法
前端·算法·leetcode·typescript
仰泳的熊猫2 小时前
题目1432:蓝桥杯2013年第四届真题-剪格子
数据结构·c++·算法·蓝桥杯·深度优先·图论
有一个好名字2 小时前
力扣-电话号码组合
算法·leetcode·职场和发展
鱼跃鹰飞2 小时前
Leetcode会员尊享面试100题:1086:前五科的均分
算法·leetcode·职场和发展
༾冬瓜大侠༿2 小时前
C++string
c语言·开发语言·c++·算法
Lethehong2 小时前
探索高效工作流的秘密:GLM-4.7 与 Dify 平台深度集成实践
大数据·人工智能·算法
Yeats_Liao2 小时前
微调决策树:何时使用Prompt Engineering,何时选择Fine-tuning?
前端·人工智能·深度学习·算法·决策树·机器学习·prompt
sin_hielo2 小时前
leetcode 3010
数据结构·算法·leetcode
sheji34162 小时前
【开题答辩全过程】以 基于协同过滤算法电影个性化推荐系统设计与实现为例,包含答辩的问题和答案
算法