news 2026/6/22 13:00:02

力扣 长度最小的子数组

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣 长度最小的子数组

一、题目概述

给定一个含有n正整数的数组nums和一个正整数target
请找出该数组中满足其和 ≥ target 的长度最小的连续子数组,并返回其长度。
如果不存在符合条件的子数组,则返回0


二、问题分析

1, 连续子数组 + 求最小长度

题目要求的是:

  • 连续子数组(不是子序列)

  • 和 ≥ target

  • 长度最小

这三个条件共同决定了本题非常适合使用滑动窗口(双指针)方法。


2, 为什么不能暴力枚举?

暴力做法是:

  • 枚举所有子数组

  • 计算每个子数组的和

时间复杂度为:

O(n²)

在数据规模较大时必然超时 ❌。


三、滑动窗口核心思想

滑动窗口的本质

维护一个区间[left, right],并保证:

  • right向右扩展:增加窗口内的元素

  • 当窗口内的和 ≥ target时:

    • 尝试移动left缩小窗口

    • 更新最小长度


适用条件

⚠️本题能够使用滑动窗口的关键前提是:

数组中的元素全部为正整数

因为只有正整数,窗口右移时,区间和才会单调递增
左移时才会单调递减

四、算法步骤详解

  1. 初始化:

    • left = 0

    • sum = 0

    • ans = n + 1(表示未找到)

  2. right0开始遍历数组:

    • nums[right]加入sum

  3. sum >= target时:

    • 更新最小长度:ans = min(ans, right - left + 1)

    • 移动left,缩小窗口:sum -= nums[left] left++

  4. 遍历结束: 如果ans未更新,返回0否则返回ans

五、代码

class Solution { public: int minSubArrayLen(int target, vector<int>& nums) { int n = nums.size(); int left = 0; int sum = 0; int ans = n + 1; for (int right = 0; right < n; right++) { sum += nums[right]; while (sum >= target) { ans = min(ans, right - left + 1); sum -= nums[left]; left++; } } return ans == n + 1 ? 0 : ans; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/20 19:36:52

把 SAPUI5 版本管明白:运行时与工具强耦合、多版本并存、升级与下线风险一篇讲透

在 SAP Fiori 的世界里,很多团队把注意力放在页面长什么样、交互顺不顺,却常常低估了一个更底层、更容易踩坑的主题:SAPUI5 版本。它看起来只是 1.26.4 这种数字组合,实际背后牵扯到运行时与开发工具的配套关系、系统景观里补丁策略、云端 CDN 的版本存活周期,以及 Fiori …

作者头像 李华
网站建设 2026/6/21 22:27:28

ST-Link在工业控制中的5个典型应用案例

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个工业级ST-Link应用项目&#xff0c;包含&#xff1a;1. 基于Modbus协议的PLC通信模块 2. 电机控制调试接口 3. 工业传感器数据采集功能 4. 故障诊断日志系统 5. 安全认证机…

作者头像 李华
网站建设 2026/6/19 10:50:13

Apache Airflow在电商数据分析中的实战应用

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个电商数据分析平台&#xff0c;使用Apache Airflow编排每日销售数据ETL流程。包括从多个数据源(MySQL、API、日志文件)提取数据&#xff0c;进行数据清洗和转换&#xff0c;…

作者头像 李华
网站建设 2026/6/15 20:57:40

设计模式深度解析:策略模式、责任链模式与模板模式

临时插入一个额外知识换换思路&#xff0c;认识一下几个业务中常用的设计模式&#xff0c;尽可能讲明白、多多点赞支持~引言在软件开发过程中&#xff0c;设计模式是解决常见问题的经典方案。今天我们将深入探讨三种常用的行为型设计模式&#xff1a;策略模式、责任链模式和模板…

作者头像 李华
网站建设 2026/6/22 9:05:33

关于图灵停机问题不可判定性证明

什么是图灵停机问题概念&#xff1a;图灵停机问题&#xff08;Halting Problem&#xff09;是否可判定&#xff0c;形式化而言&#xff1a;停机不停机对角线证明对角线&#xff0c;实际上逻辑系统中的符号完备问题也是通过该法构造解答的由于所有的图灵机都可以由 序列编码&…

作者头像 李华
网站建设 2026/6/22 9:17:03

回溯算法--总结1

第一周总结回溯问题抽象为树形结构&#xff0c;可以直观的看出其搜索的过程&#xff1a;for循环横向遍历&#xff0c;递归纵向遍历&#xff0c;回溯不断调整结果集。回溯算法三部曲&#xff1a;参数。终止条件。单层递归逻辑。剪枝&#xff1a;剪枝1&#xff1a;for循环在寻找起…

作者头像 李华