news 2026/5/1 5:13:24

力扣 长度最小的子数组

作者头像

张小明

前端开发工程师

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/4/29 15:30:40

2025_最新!网络安全漏洞平台合集 SRC靶场

【2025最新】网络安全挖洞平台大全&#xff0c;从零开始学SRC漏洞挖掘&#xff08;建议收藏&#xff09; 文章全面介绍了网络安全漏洞挖掘的各种平台&#xff0c;包括国内众测平台、高阶漏洞研究奖励计划、行业定向爆破平台以及各大企业应急响应中心(SRC)。同时提供了挖洞前的…

作者头像 李华
网站建设 2026/4/30 13:27:49

零基础学Vue3:Composition API入门指南

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个面向初学者的Composition API教学示例&#xff1a;1. 展示ref和reactive的基本使用 2. 演示简单的计算属性 3. 实现一个计数器组件 4. 添加一个方法切换主题色。代码要有详…

作者头像 李华
网站建设 2026/4/28 0:03:50

AI市场舆情分析榜,原圈科技引领2025真相洞察

摘要&#xff1a;2025年AI市场舆情分析与声量监测领域&#xff0c;原圈科技凭借全域数据融合与精准推理能力&#xff0c;成为行业真相洞察的引领者。原圈科技天眼AI市场洞察智能体突破传统数据孤岛&#xff0c;融合公私域数据&#xff0c;实现分钟级洞察与高效决策&#xff0c;…

作者头像 李华
网站建设 2026/4/21 13:39:43

AI如何解决MySQL大小写敏感配置冲突问题

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个AI辅助工具&#xff0c;用于自动检测MySQL服务器配置(lower_case_table_names)与数据字典设置之间的冲突。工具应能&#xff1a;1. 扫描服务器配置 2. 分析数据字典元数据 …

作者头像 李华
网站建设 2026/4/18 2:49:30

对比:传统debug与AI增强调试的效率差异

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个包含10个故意植入错误的Web应用&#xff0c;分别实现&#xff1a;1) 传统手动debug流程&#xff1b;2) AI增强debug流程。要求统计并可视化两种方式发现和修复所有错误所需…

作者头像 李华
网站建设 2026/4/21 11:12:25

告别性能问题:防抖节流让网页流畅度提升80%

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个性能对比工具页面&#xff0c;包含&#xff1a;1. 未优化的高频事件处理器&#xff08;如mousemove&#xff09;&#xff1b;2. 使用防抖优化的版本&#xff1b;3. 使用节流…

作者头像 李华