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

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

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

  • 题目
  • 思路
  • 代码

题目

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

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

思路

这道题我们先把条件改一下,我们先找符合条件的子数组不需要要长度最小的,那么我们只需要一个for循环再加一个if判断就可以了,思路就是我们从数组头开始一个一个的加直到总值大于target即可。现在我们再想怎么得到长度最小的子数组,要知道我们的条件是总和大于等于target的子数组所以在我们加上最后一个数满足条件时我们当时子数组的尾就已经定死了,我们只能移动头也就是我们可以减去子数组第一个位置来判断是否还满足条件。每次移动头之前我们都判断一下现在子数组的长度是否是最小的。所以整体的思路就是我们先移动子数组的尾等尾定死了我们就再移动头直到没法满足条件我们再开始移动尾,然后满足条件后再继续移动头。这样来回的移动头尾的位置从而得到长度最小的子数组。
所以我们发现我们的子数组是在不断的移动的也可以说是在滑动的,这也就是滑动窗口的思路。

代码

class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) {int res = INT_MAX;int n = nums.size();if(n == 0){return 0;}//子数组的范围int end = 0;int start = 0;int total = 0;while(end < n){//移动子数组的尾直到满足条件total += nums[end];//移动子数组的头直到不满足条件while(total >= target){//等到total大于target//我们就可以移动子数组的头从而得到最小长度res = min(res,end-start+1);total -= nums[start];start++;}end++;}return res == INT_MAX ? 0 : res;}
};
http://www.lryc.cn/news/605076.html

相关文章:

  • 光谱相机自动调焦曝光控制
  • 基于Rust与HDFS、YARN、Hue、ZooKeeper、MySQL
  • Linux 系统原理深度剖析与技术实践:从内核架构到前沿应用
  • npm run dev 启动项目 报Error: listen EACCES: permission denied 0.0.0.0:80 解决方法
  • Spring boot 打包成docker image 镜像
  • vue create 项目名 和 npm init vue@latest 创建vue项目的不同
  • 3GPP TS 38.331 V18.6.0 (2025-06)中文版
  • CMS框架GetShell
  • Web3:以太坊虚拟机
  • 网络的学习 2 Socket
  • 发那科机器人P点位置号码自动变更功能为禁用状态
  • python基础:用户输入和 while 循环
  • 【机器学习】pycharm使用SSH SFTP 远程连接 ubuntu服务器 进行开发+调试+数据训练
  • IBus vs. Fcitx5:一场 Linux 输入法框架的正面交锋
  • 在 Kubernetes 上部署 Label Studio
  • Apache Kafka核心组件详解
  • 当人生低谷无人帮助时,如何独自奏响人生乐章
  • 借助 Wisdom SSH AI 助手构建 Linux 容器化开发流水线
  • 虚实共生的智能革命:元宇宙、物联网与 AI 融合生态全景图谱
  • Vue 3 入门教程 2- Vue 组件基础与模板语法
  • 推客系统开发全流程解析:从概念到落地的完整指南
  • 论文Review LSLAM BALM | 经典激光SLAM方案!港大MARS出品!RAL2021 | 激光BA优化
  • RocketMQ 核心特性解析及与 Kafka区别
  • Spring AI 海运管理应用第2部分
  • Centos 7.9安装部署cobbler-自动化部署服务器完整教程
  • 数据结构第3问:什么是线性表?
  • 从0开始学linux韦东山教程Linux驱动入门实验班(7)
  • 不止 “听懂”,更能 “感知”!移远通信全新AI 音频模组 重新定义智能家居“听觉”逻辑
  • 【Datawhale AI夏令营】科大讯飞AI大赛(大模型技术)/夏令营:让AI理解列车排期表(Task3)
  • 如何将DICOM文件制作成在线云胶片