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

力扣:209.长度最小的子数组

1.题目分析:

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

找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度如果不存在符合条件的子数组,返回 0 。

示例 1:

输入:target = 7, nums = [2,3,1,2,4,3]
输出:2
解释:子数组 
[4,3]是该条件下的长度最小的子数组。

1.找出连续子数组

2.最短长度

3.特殊情况:数组总和小于target,返回零

 2.算法分析:

方法一:暴力枚举:时间复杂度是O(n^3)

设置两个指针,分别表示子数组的开始和子数组的结束两层for循环,最后求子数组总和一个while,自己在脑子想想,跑不过,我就不画图,写代码了哈。

方法二:在暴力枚举的方法上做出改进-->滑动窗口,还是用了双指针,和单调性,全是正数会越加越大,让两个指针同向移动来实现优化

滑动窗口步骤:1.进入窗口

                         2.判断窗口

                         3.退出窗口

 例一图示(target = 7, nums = [2,3,1,2,4,3]):

 

 

 

 

 

 

3.代码编写:

public static int minSubArrayLen(int target, int[] nums) {int sum=0;int count=Integer.MAX_VALUE;int left=0;int right=0;for(left=0,right=0;right<nums.length;right++){sum+=nums[right];//进窗口while (sum>=target)//判断{count=Math.min(count,right-left+1);sum-=nums[left++];//出窗口}}if(count==Integer.MAX_VALUE){return 0;}return count;}

 

http://www.lryc.cn/news/279410.html

相关文章:

  • 常见类型的yaml文件如何编写?--kind: Service
  • linux环境下安装postgresql
  • 专业课145+合肥工业大学833信号分析与处理考研经验合工大电子信息通信
  • FreeRtos Queue (一)
  • 深入理解 Hadoop (五)YARN核心工作机制浅析
  • 优化 - 重构一次Mysql导致服务器的OOM
  • 【光波电子学】基于MATLAB的多模光纤模场分布的仿真分析
  • 0104 AJAX介绍
  • 代码随想录算法训练营第24天 | 理论基础 77. 组合
  • 【深度学习环境搭建】Windows搭建Anaconda3、已经Pytorch的GPU版本
  • 基于WebFlux的Websocket的实现,高级实现自定义功能拓展
  • 使用 LLVM clang C/C++ 编译器编译 OpenSSL 3.X库
  • 【信息安全】hydra爆破工具的使用方法
  • uniapp中uview组件库丰富的CountTo 数字滚动使用方法
  • inflate流程分析
  • 数据挖掘实战-基于机器学习的电商文本分类模型
  • 第8章-第4节-Java中字节流的缓冲流
  • NULL是什么?
  • FreeRTOS 基础知识
  • 【野火i.MX6NULL开发板】挂载 NFS 网络文件系统
  • 在JavaScript中,Object.assign()方法或展开语法(...)来合并对象,Object.freeze()方法来冻结对象,防止对象被修改
  • 池化、线性、激活函数层
  • ES-极客学习第二部分ES 入门
  • Nodejs软件安装​
  • Photoshop 2024 (PS2024) v25 直装版 支持win/mac版
  • ChatGPT绘画生成软件MidTool:智能艺术的新纪元
  • linux安装MySQL5.7(安装、开机自启、定时备份)
  • openGauss学习笔记-195 openGauss 数据库运维-常见故障定位案例-分析查询语句运行状态
  • Oracle篇—实例中和name相关参数的区别和作用
  • python + selenium 初步实现数据驱动