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/10/13 2:22:51 阅读更多 →
基于SpringBoot的闲置回收平台设计与实现(源码+lw+部署文档+讲解等)

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

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

2026/10/4 10:05:30 阅读更多 →
大语言模型智能体状态压缩实战:从上下文膨胀到成本优化

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

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

2026/10/10 10:09:39 阅读更多 →

最新新闻

基于 Prometheus Operator 的 Kubernetes 集群监控栈部署与排错指南

基于 Prometheus Operator 的 Kubernetes 集群监控栈部署与排错指南

云原生教程 【免费下载链接】kubernetes-handbook Kubernetes Handbook (Kubernetes指南) https://kubernetes.feisky.xyz 项目地址: https://gitcode.com/gh_mirrors/kub/kubernetes-handbook 点击查看 免费下载 Kubernetes 社区围绕 Prome…

2026/10/13 2:22:28 阅读更多 →
sol2 教程:如何在 Lua 中使用 C++ 自定义类型(usertype)

sol2 教程:如何在 Lua 中使用 C++ 自定义类型(usertype)

开发工具 【免费下载链接】sol2 Sol3 (sol2 v3.0) - a C <-> Lua API wrapper with advanced features and top notch performance - is here, and its great! Documentation: 项目地址&#xff1a; https://gitcode.com/gh_mirrors/so/sol2 点击查看 免费下载 导读 本…

2026/10/13 2:22:28 阅读更多 →
枚举用法,单例模型

枚举用法,单例模型

/*** 枚举的工具方法类&#xff0c;提供格式化和解析LocalDate的方法*/ public enum DateUtil {INSTANCE;// 这就是一个枚举常量&#xff0c;代表 DateUtil 的唯一实例private final DateTimeFormatter formatter DateTimeFormatter.ofPattern("yyyy-MM-dd");public…

2026/10/13 2:22:28 阅读更多 →
C语言分支和循环语句详解

C语言分支和循环语句详解

在C语言中&#xff0c;程序的执行流程并非总是按顺序线性推进。分支语句的核心作用&#xff0c;就是让程序能够根据不同的条件&#xff0c;选择执行不同的代码块&#xff0c;从而实现灵活的逻辑判断。一、if 语句if 是最基础的分支判断工具&#xff0c;它通过检查一个条件表达式…

2026/10/13 2:22:28 阅读更多 →
嵌入式Linux UVC驱动调试实战:从设备枚举到安卓Camera打通

嵌入式Linux UVC驱动调试实战:从设备枚举到安卓Camera打通

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 2:22:28 阅读更多 →
从决策记录到自动化流水线:architecture-decision-record 仓库“持续集成”ADR 示例的完整解读与落地实践

从决策记录到自动化流水线:architecture-decision-record 仓库“持续集成”ADR 示例的完整解读与落地实践

【免费下载链接】architecture-decision-record Architecture decision record (ADR) examples for software planning, IT leadership, and template documentation 项目地址&#xff1a; https://gitcode.com/gh_mirrors/ar/architecture-decision-record 点击查看 免费下载 …

2026/10/13 2:21:28 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目&#xff0c;我最大的感受是&#xff0c;大部分坑不是出在技术前沿&#xff0c;而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节&#xff0c;最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了&#xff0c;很难不碰到舵机控制这道坎。做智能小车要转方向&#xff0c;做机械臂要抬关节&#xff0c;做云台要偏航俯仰&#xff0c;背后都是同一个东西在干活&#xff1a;舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”&#xff1f;——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台&#xff1f;或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜&#xff1f;又或者&#xff0c;在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介&#xff1a;基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码&#xff0c;面向计算机相关专业课程设计与期末大作业学生&#xff0c;以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程&#xff0c;…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程&#xff1a;键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化&#xff0c;十个新手有八个栽在"往输入框里填东西"这件事上&#xff1a;要么填不进去&#xff0c;要么填了一半&#xff0c;要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程&#xff1a;阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀&#xff1a;什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面&#xff0c;跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →