8.LeetCode算法习题讲解--滑动窗口--长度最小的子数组
一.题目习题链接209. 长度最小的子数组 - 力扣LeetCode二.题目讲解给定全正整数数组nums和正整数target找到连续子数组满足子数组和 ≥ target 要求找出满足条件的最短子数组长度不存在返回 0。⚠️关键点子数组 连续元素数组所有元素都是正数这是算法优化的核心前提三.算法原理讲解解法一暴力枚举首先我们想到的肯定是遍历所有子数组然后找到一个一个匹对找到最小的那个子数组长度。枚举所有子数组起点 i再从起点向后不断累加元素终点 j一旦区间和 ≥ target记录区间长度j-i1因为往后 j 更大长度只会更长内层循环可以直接 break。缺点时间复杂度 O(n^2)暴力会超时只能用来理解题意不能 AC。解法二利用单调性“同向双指针”来优化我们不是在讲滑动窗口怎么用双指针来解题了呢这里的双指针不是我们之前提到的双指针这里我们来分析一下1.单调性由于数组中存放的全是正整数所以每次加一个数都会变大单调递增的2.同向双指针两个指针朝同一个方向运动下面我们画图来分析定义两个指针开始时指向0然后让右指针不断向后面走将 [left , right]之间的区间看作一个窗口right向后面走的时候就相当于数据进窗口然后不断sum直到sumtarget停下来这时找到一个区间长度注意right后面的数就不用进窗口了因为进去之后的长度都要比现在的长我们找的是最小的那个区间长度这里就用到了单调性然后是让left就相当去出窗口right是重新指向left还是不动呢这里我们可以通过运动观察到如果指向图一走之后还会变到图二这种状态所以不需要让right指针回到left的位置这也是滑动窗口的由来同时这里也是前面讲的同向双指针这里注意出窗口前要更新len的长度然后让sum-left后继续判断sum和target的关系重复该操作结束条件right走向末尾四.编写代码这里需要注意几个点1.外层循环是让right一直向后面走直到走到末尾才结束内层循环是让left直到sumtarget才结束2.绿色框因为更新长度要取最小的这里如果给0就会一直是0所以给最大3.红色框是判断条件为什么是等号因为是循环是先判断再更新长度最后才会出窗口所以当sumtarget的时候还要更新长度然后后面sum会小于target但是他不会进入循环len也就不会变4.蓝色框这里是判断len长度是否变化变化了说明进入了循环说明sumtarget返回len没变化说明没有进入循环sumtarget没有满足条件的子数组然后就返回0class Solution { public: int minSubArrayLen(int target, vectorint nums) { int left 0, sum 0,len INT_MAX; for(int right 0; right nums.size();right) { sum nums[right]; // 进窗口 while(sum target) { //更新长度 len min(len,right - left 1); sum - nums[left]; left; } } return len INT_MAX ? 0 : len; } };

相关新闻

《创业之路》-921-顶层永远互利,底层永远竞争内卷,千年不变。这与道德高尚无关,只与自身的位置特征和规律决定。

《创业之路》-921-顶层永远互利,底层永远竞争内卷,千年不变。这与道德高尚无关,只与自身的位置特征和规律决定。

顶层永远互利,底层永远竞争内卷,千年不变 —— 载体迭代,规律永恒 历史最大的假象,是 “时代变了,一切都变了”。 真正的真相是:外在形式、技术载体、产品形态、生活方式一直在变,但人类商业…

2026/8/18 3:59:16 阅读更多 →
基于SpringBoot的闲置回收平台设计与实现(源码+lw+部署文档+讲解等)

基于SpringBoot的闲置回收平台设计与实现(源码+lw+部署文档+讲解等)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/17 2:47:00 阅读更多 →
大语言模型智能体状态压缩实战:从上下文膨胀到成本优化

大语言模型智能体状态压缩实战:从上下文膨胀到成本优化

1. 从“上下文膨胀”到“成本焦虑”:为什么我们需要压缩智能体状态 最近在折腾几个基于大语言模型的智能体项目,从简单的客服机器人到复杂的多步骤工作流编排,一个绕不开的痛点越来越明显: 上下文(Context&#xff09…

2026/8/17 2:47:00 阅读更多 →

最新新闻

DeepSeek API价格调整应对:成本控制与本地部署实战指南

DeepSeek API价格调整应对:成本控制与本地部署实战指南

最近在开发者圈子里,一个话题的热度正在悄然攀升:DeepSeek Harness 的发布,以及随之而来的 API 价格调整。如果你正在使用或考虑使用 DeepSeek 的模型服务,无论是通过 API 调用,还是计划本地部署,那么这篇文…

2026/8/18 6:43:14 阅读更多 →
Android玩机进阶:Magisk隐藏Root与LSPosed框架实战指南

Android玩机进阶:Magisk隐藏Root与LSPosed框架实战指南

1. 从解锁到掌控:Android玩机的核心价值与风险边界拿到一部Android手机,第一件事是什么?对于绝大多数普通用户,可能是下载几个常用App。但对于我们这些喜欢折腾、追求极致掌控感的玩家来说,答案只有一个:获…

2026/8/18 6:43:14 阅读更多 →
从二分到三分:单峰函数极值搜索算法原理与C++实现

从二分到三分:单峰函数极值搜索算法原理与C++实现

1. 从二分到三分:算法思想的一次自然延伸在算法学习的路上,二分查找(Binary Search)几乎是所有人的第一道坎,也是理解“分治”与“减治”思想的绝佳起点。它的核心逻辑清晰得近乎优雅:在一个单调有序的序列…

2026/8/18 6:43:14 阅读更多 →
可执行世界模型与验证:解决ARC-AGI-3智能体编程最后一公里的核心技术

可执行世界模型与验证:解决ARC-AGI-3智能体编程最后一公里的核心技术

1. 项目概述:从ARC-AGI-3看智能体编程的“最后一公里”最近在AI编程领域,一个名为“ARC-AGI-3”的基准测试正在引发越来越多的讨论。这个测试的核心,是要求一个AI智能体(Coding Agent)仅仅通过观察几个输入-输出对的例…

2026/8/18 6:43:14 阅读更多 →
番茄工作法深度解析:从认知原理到实战应用,提升专注力与工作效率

番茄工作法深度解析:从认知原理到实战应用,提升专注力与工作效率

1. 从“番茄”到“专注”:一个被误解的效率工具 如果你在效率工具圈里待过一阵子,大概率听说过“番茄工作法”。这个名字听起来有点可爱,甚至带点“玩具”属性的方法,却是我过去几年里,在应对高强度、高密度工作任务时…

2026/8/18 6:43:14 阅读更多 →
浏览器插件开发实战:DOM操作与API集成实现网页头像批量替换

浏览器插件开发实战:DOM操作与API集成实现网页头像批量替换

1. 这篇文章真正要解决的问题 你是否曾想过,如果能把一个网站的用户头像,批量、自动地替换成你喜欢的风格,会是怎样一种体验?比如,把B站(Bilibili)评论区里所有的用户头像,都变成可…

2026/8/18 6:42:14 阅读更多 →

日新闻

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 如果你还停留在"看网课 不停暂停 截图 …

2026/8/18 0:00:57 阅读更多 →
思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是不是也经历过这种时刻:设计稿里…

2026/8/18 0:00:58 阅读更多 →
华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, …

2026/8/18 0:00:59 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/17 2:58:27 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/17 2:58:30 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/17 2:58:32 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/17 18:54:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/17 18:55:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/17 18:55:55 阅读更多 →