news 2026/4/20 13:38:00

力扣 长度最小的子数组

作者头像

张小明

前端开发工程师

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/17 22:09:36

渗透测试之Kali漏洞扫描工具详解

【强烈收藏】Kali Linux 21款网络安全工具详解&#xff1a;从信息收集到渗透测试&#xff0c;小白也能快速上手 本文介绍了Kali Linux上的21款网络安全工具&#xff0c;包括Nmap、Wireshark、Metasploit等&#xff0c;涵盖信息收集、漏洞扫描、渗透测试、网络分析等多个方面。…

作者头像 李华
网站建设 2026/4/20 11:46:22

AI如何帮你快速掌握Vue3文档核心要点

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个基于Vue3的AI辅助学习应用&#xff0c;能够自动解析Vue3官方文档&#xff0c;提取核心概念和API说明&#xff0c;并生成对应的代码示例。应用应包含以下功能&#xff1a;1)…

作者头像 李华
网站建设 2026/4/18 11:13:57

虚拟转子运动方程

光伏混合储能VSG讲解一一光储一次调频、功率平抑、 直流母线电压控制。光伏电站并网后像个叛逆期的孩子&#xff0c;总喜欢甩开电网调度自己玩。这时候虚拟同步发电机&#xff08;VSG&#xff09;技术就像个严厉的班主任&#xff0c;让光伏系统学会"守规矩"。今天咱们…

作者头像 李华
网站建设 2026/4/17 21:02:42

中山网络推广营销:低成本高效益的中小企业营销实操指南

对于中山中小企业来说&#xff0c;数字化营销的兴起为其提供了前所未有的机会。然而&#xff0c;预算有限和人力短缺依然是这些企业在进行网络营销时面临的主要挑战。本文将围绕这些痛点&#xff0c;提供一系列低成本、可执行的网络推广方案&#xff0c;帮助中山的中小企业从基…

作者头像 李华
网站建设 2026/4/16 22:24:39

SQL初学者指南:5分钟搞懂union和union all

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个面向初学者的SQL学习应用&#xff0c;重点讲解union和union all。要求&#xff1a;1. 卡通化交互界面 2. 分步骤动画演示 3. 可交互的简单示例 4. 即时反馈练习系统 5. 错题…

作者头像 李华
网站建设 2026/4/17 3:33:55

15分钟用高德地图MCP搭建出行应用原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 快速开发一个出行应用原型&#xff0c;集成高德地图MCP&#xff0c;实现以下核心功能&#xff1a;1. 地图展示&#xff1b;2. 起点终点输入&#xff1b;3. 路线规划&#xff1b;4. …

作者头像 李华