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

力扣209长度最小的子数组

209. 长度最小的子数组

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

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

示例 1:

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

输入:target = 4, nums = [1,4,4]
输出:1
示例 3:

输入:target = 11, nums = [1,1,1,1,1,1,1,1]
输出:0

提示:

1 <= target <= 109
1 <= nums.length <= 105
1 <= nums[i] <= 105

思路:利用滑动窗口,定义两个指针为窗口的开始和结束,同时指向0位置,然后加到sum,end不断后移,sum大于等于target时,开始更新子数组最小长度,然后把start减掉,start后移

class Solution {public int minSubArrayLen(int target, int[] nums) {int i = 0;int res = Integer.MAX_VALUE;int sum = 0;for(int j = 0; j < nums.length; j++){sum += nums[j];while(sum >= target){int len = j - i + 1;res = Math.min(res, len);sum -= nums[i];i++;}}return res == Integer.MAX_VALUE ? 0 : res;}
}
http://www.lryc.cn/news/28923.html

相关文章:

  • 【mysql是怎样运行的】-InnoDB数据页结构
  • VIM实用指南(10)语法自动补全插件coc.nvim
  • 【Vue3 第二十二章】过渡动画
  • 【linux】:进程状态(僵尸进程等)以及环境变量
  • 【C语言——练习题】指针,你真的学会了吗?
  • Linux用户空间与内核空间通信(Netlink通信机制)
  • 3.3日报
  • 并发编程-进程
  • LeetCode196_196. 删除重复的电子邮箱
  • Auto.js Pro 替代品
  • 红日(vulnstack)2 内网渗透ATTCK实战
  • 一个好的工程项目管理软件所包含的主要功能
  • 【大数据监控】Grafana、Spark、HDFS、YARN、Hbase指标性能监控安装部署详细文档
  • 面试题---CSS
  • 【C++】vector
  • RocketMQ安装
  • Spring——什么是IOC?
  • 力扣(LeetCode)430. 扁平化多级双向链表(2023.03.04)
  • 条款13:优先考虑const_iterator而非iterator
  • 23考研 长安大学846计算机考研复试《数据库》
  • Android 9.0 系统去掉省电模式
  • 3 mmmmm
  • nvidia Jetson nano Linux内核编译
  • 理想汽车2023年销量冲击30万辆有戏吗?
  • 借助CatGPT让turtlesim小乌龟画曲线
  • Java面试总结(四)
  • 强强联合,再强的英伟达NVIDIA也不落俗套
  • maven使用心得
  • 【算法题】1958. 检查操作是否合法
  • 十一、GoF之代理模式