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

Leetcode经典题20--长度最小的子数组

题目描述

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

找出该数组中满足其总和大于等于 target 的长度最小的子数组

[numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。

输入输出示例

输入:target = 7, nums = [2,3,1,2,4,3]

输出:2

解释:子数组 [4,3] 是该条件下的长度最小的子数组。

解决方案

方式一:滑动窗口
算法思想

定义两个指针 start 和 end 分别表示子数组(滑动窗口窗口)的开始位置和结束位置,维护变量 sum 存储子数组中的元素和(即从 nums[start] 到 nums[end] 的元素和)。

初始状态下,start 和 end 都指向下标 0,sum 的值为 0。

每一轮迭代,将 nums[end] 加到 sum,如果 sum≥s,则更新子数组的最小长度(此时子数组的长度是 end−start+1),然后将 nums[start] 从 sum 中减去并将 start 右移,直到 sum

实现代码
class Solution {public int minSubArrayLen(int target, int[] nums) {int n=nums.length;if(n==0){return 0;}int ans=Integer.MAX_VALUE;int start=0,end=0;//窗口的左边界和右边界int sum=0;//窗口的元素和while(end<n){//向右滑动sum+=nums[end];//当窗口内的元素和大于等于目标值,缩小窗口while(sum>=target){ans=Math.min(ans,end-start+1);sum-=nums[start];start++;}//否则扩大窗口end++;}//考虑达不到目标值的情况return ans==Integer.MAX_VALUE?0:ans;}
}
复杂度分析

时间复杂度:O(n),其中 n 是数组的长度。指针 start 和 end 最多各移动 n 次。

空间复杂度:O(1)。

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

相关文章:

  • 【计算机视觉】超简单!维纳滤波的经典案例
  • 【closerAI ComfyUI】快速洗图!高效快速的提示词反推节点——cliption,让洗图出图快人一步不爆显存!
  • AE Dressler CESAR 1312 Generator Model User Manual
  • 【513. 找树左下角的值 中等】
  • 网络通信的瑞士军刀:Python socket库全解析
  • 【笔记️】魔爪 Mini mx 使用快捷键
  • 去除 el-input 输入框的边框(element-ui@2.15.13)
  • Vue中的一些用法
  • 异步爬虫之协程的基本原理
  • Diffusion Transformer(DiT)——将扩散过程中的U-Net换成ViT:近频繁用于视频生成与机器人动作预测(含清华PAD详解)
  • CPT203 Software Engineering 软件工程 Pt.2 敏捷方法和需求工程(中英双语)
  • 【Git】-- 在本地执行 git fetch 发生异常
  • Apache Doris 创始人:何为“现代化”的数据仓库?
  • 高校网络安全存在的问题与对策研究
  • Redis的数据类型,线程,持久化机制
  • 什么是ondelete cascade以及使用sqlite演示ondelete cascade使用案例
  • Java设计模式 —— 【结构型模式】享元模式(Flyweight Pattern) 详解
  • 数据的简单处理——pandas模块——选择数据
  • 淘宝/天猫购物车商品列表API:深度解析与应用实践
  • 位置式PID-控制步进电机-位置环-stm32
  • 关于Qt::BlockingQueuedConnection的死锁问题
  • Excel for Finance 07 `FV PV` 函数
  • 驱动开发系列31 - Linux Graphics 调试 mesa 的 glDrawArrays (三)
  • 【探花交友】day03—MongoDB基础
  • 【Vue教程】使用Vite快速搭建前端工程化项目 | Vue3 | Vite | Node.js
  • 手机租赁平台开发全攻略打造高效便捷的租赁服务系统
  • 自由学习记录(31)
  • 【探花交友】用户登录总结
  • LabVIEW声波谐振管自动化测量系统
  • elasticsearch中的倒排索引