当前位置: 首页 > article >正文

4.长度最小的子数组:

209.长度最小的子数组:

题目:

209. 长度最小的子数组 - 力扣(LeetCode)

分析:

怎么做呢?定义一个快慢指针,先让快指针往后移动,直到找到和大于等于 target ,更新len然后让慢指针往前挪动,当慢指针和快指针组成的和小于target时,让快指针继续往后遍历并让慢指针停止,直到快指针和慢指针之间的区间之和大于等于 target,以此往复,直到遍历完数组。

代码:

class Solution {
    public int minSubArrayLen(int target, int[] nums) {
        int len = Integer.MAX_VALUE;
        int fast = 0, slow = 0;
        int sum = 0;

        for(; fast < nums.length;fast++){
            sum += nums[fast];
            while(sum >= target){
                // 一开始没想到使用min去更新
                len = Math.min(len, fast - slow + 1);
                sum -= nums[slow++];
            }
        }
        // 这一步忘记考虑所有元素和<target了
        return len == Integer.MAX_VALUE?0:len;
    }
}

http://www.kler.cn/a/429385.html

相关文章:

  • 一文掌握Docker
  • 【进程与线程】进程的状态
  • C++ 并发编程之std::find的并发版本
  • 2025 年前端开发学习路线图完整指南
  • 1月13日学习
  • next-auth v5 结合 Prisma 实现登录与会话管理
  • Text2SQL(NL2sql)对话数据库:设计、实现细节与挑战
  • 上传word表格识别出table表格 转为二维数组并显示(vue)
  • C# 中的异常处理:构建健壮和可靠的程序
  • 简单易懂讲解LVM
  • 从方向导数到梯度:深度学习中的关键数学概念详解
  • 在ARM Linux应用层下使用SPI驱动WS2812
  • 数据结构 (36)各种排序方法的综合比较
  • vbo总结和使用
  • Datawhale AI 冬令营 模型微调
  • 动态规划part01
  • LLM - 01_了解LangChain和LangChain4J
  • 【工具变量】上市公司企业研发不确定性数据(2013-2023年)
  • 热更新xLua实践(xLua背包)
  • 单链表(C语言版本)
  • Hermes engine on React Native 0.72.5,function无法toString转成字符串
  • VUE3学习二
  • 使用docker让项目持续开发和部署
  • 【NLP 12、深度学习15条调参经验】
  • 【Golang】Go语言编程思想(四):测试与性能调优
  • 字符串知识