力扣209:长度最小的子数组

  • 题目
  • 思路
  • 代码

题目

给定一个含有 n 个正整数的数组和一个正整数 target 。

找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。

思路

这道题我们先把条件改一下,我们先找符合条件的子数组不需要要长度最小的,那么我们只需要一个for循环再加一个if判断就可以了,思路就是我们从数组头开始一个一个的加直到总值大于target即可。现在我们再想怎么得到长度最小的子数组,要知道我们的条件是总和大于等于target的子数组所以在我们加上最后一个数满足条件时我们当时子数组的尾就已经定死了,我们只能移动头也就是我们可以减去子数组第一个位置来判断是否还满足条件。每次移动头之前我们都判断一下现在子数组的长度是否是最小的。所以整体的思路就是我们先移动子数组的尾等尾定死了我们就再移动头直到没法满足条件我们再开始移动尾,然后满足条件后再继续移动头。这样来回的移动头尾的位置从而得到长度最小的子数组。
所以我们发现我们的子数组是在不断的移动的也可以说是在滑动的,这也就是滑动窗口的思路。

代码

class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) {int res = INT_MAX;int n = nums.size();if(n == 0){return 0;}//子数组的范围int end = 0;int start = 0;int total = 0;while(end < n){//移动子数组的尾直到满足条件total += nums[end];//移动子数组的头直到不满足条件while(total >= target){//等到total大于target//我们就可以移动子数组的头从而得到最小长度res = min(res,end-start+1);total -= nums[start];start++;}end++;}return res == INT_MAX ? 0 : res;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/91210.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/91210.shtml
英文地址,请注明出处:http://en.pswp.cn/web/91210.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

采购管理系统哪家性价比高?

在企业数字化转型进程中&#xff0c;采购管理系统已成为降本增效的核心工具。但面对市场上五花八门的产品&#xff0c;“性价比” 成为企业选型时的关键考量 —— 既要功能贴合业务需求&#xff0c;又要成本可控&#xff0c;还需兼顾实施效率与长期扩展性。以下从性价比维度解析…

轻松打造Unity小游戏AR体验

目录 AR会话初始化 平面追踪与相机定位 用户交互处理 实时渲染 Unity 小游戏宿主现已支持 AR 功能&#xff0c;本文介绍如何从零开始创建一个可以在Unity小游戏宿主上运行的AR小游戏&#xff0c;欢迎大家试用&#xff01; 想为你的小游戏注入虚实交融的魔力吗&#xff1f;…

IFCVF驱动+vhost-vfio提高虚拟机网络性能

​​IFCVF (Intel FPGA Virtual Function)​​ 是 Intel 为其基于 FPGA 的智能网卡开发的 ​​SR-IOV 虚拟功能驱动​​,属于 ​​PF4 (Physical Function 4)​​ 架构的一部分。它是专为高性能网络虚拟化场景设计的硬件加速解决方案。 云计算智能网卡(soc)或DPU场景下,IFC…

Hook捕获并拦截文件创建行为

需要用到minhook 先编译DLL #include <Windows.h> #include <string> #include <TlHelp32.h> #include <Shlwapi.h>#include "MinHook.h" // 自动选择正确的MinHook库 #pragma comment(lib, "Shlwapi.lib") #if defined(_M_X64) …

图像平滑处理

图像平滑处理四种常用方式1. 均值滤波 (cv2.blur())2. 高斯滤波 (cv2.GaussianBlur())3. 中值滤波 (cv2.medianBlur())4、双边滤波 (cv2.bilateralFilter())总结存图时遇到一个中文版乱码问题四种常用方式 平滑处理&#xff08;也称为模糊处理&#xff09;&#xff0c;用于减少…

fortigate的waf功能

在系统管理----可见功能----web应用防火墙打开waf功能Web 应用程序防火墙 &#xff08;WAF&#xff09; 配置文件可以检测和阻止已知的 Web 应用程序攻击。您可以将 WAF 配置文件配置为使用签名和约束来检查 Web 流量。您还可以强制实施 HTTP 方法策略&#xff0c;该策略控制与…

AI Compass前沿速览:可灵创意工坊、字节Coze StudioCoze Loop、通义万相2.2 、智谱GLM-4.5、腾讯混元3D世界模型开源

AI Compass前沿速览&#xff1a;可灵创意工坊、字节Coze Studio&Coze Loop、通义万相2.2 、智谱GLM-4.5、腾讯混元3D世界模型开源 AI-Compass 致力于构建最全面、最实用、最前沿的AI技术学习和实践生态&#xff0c;通过六大核心模块的系统化组织&#xff0c;为不同层次的学…

SpringCloud之Gateway

SpringCloud之Gateway 官网地址&#xff1a; https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#gateway-request-predicates-factories 1. 什么是gateway Spring Cloud Gateway 是Spring Cloud官方推出的第二代网关框架&#xff0c;定位于取代 Net…

关于获取某目录及子目录下所有文件且不包含隐藏文件

最近比较忙&#xff0c;很少写blog了&#xff01;&#xff01;&#xff01;关于获取目录及子目录下所有文件是常遇到的功能&#xff0c;一般通过递归遍历实现。而生产场景中&#xff0c;一般是遍历nas上的目录&#xff0c;在nas上利用File.listFiles(),在linux系统上无法获取含…

docker可视化管理工具lazydocker

Lazydocker 是一个用 Go 语言编写的命令行 Docker 管理工具。它提供了一个简洁、直观的终端界面&#xff0c;支持键盘和鼠标操作&#xff0c;可通过方向键与快捷键实时查看和管理容器、镜像、网络等资源&#xff0c;大幅简化了原本复杂的命令行操作&#xff0c;提升操作效率。2…

少林寺用什么数据库?

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;15年DBA工作经验 Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝15万 擅长主流Oracle、MySQL、PG、高斯及…

C语言---万能指针(void *)、查找子串(strncmp函数的应用)多维数组(一维数组指针、二维数组指针)、返回指针值函数、关键字(const)

一、字符串与指针用字符指针指向一个字符串&#xff0c;可以不定义字符数组&#xff0c;而定义字符指针。用字符指针指向字符串中的字符。不能使用指针去改变不能修改的空间。eg1. 运用指针将 src 的内容拷贝到 dest 中去void Strcpy(char *dest, char *src) {while(*src ! \0)…

Keepalived 实战

一、高可用集群基础核心概念与指标集群类型&#xff1a;LB&#xff08;负载均衡&#xff09;&#xff1a;如 LVS、HAProxy、Nginx&#xff0c;提升吞吐量&#xff1b;HA&#xff08;高可用&#xff09;&#xff1a;保障核心服务&#xff08;数据库、Redis&#xff09;连续性&am…

窗口函数替代子查询的复杂查询简化技巧

窗口函数通过单次扫描完成分析计算&#xff0c;能大幅简化子查询结构并提升性能&#xff0c;尤其在排名、累计计算等场景‌15。以下是核心优化技巧&#xff1a;一、排名场景替代方案‌部门工资排名‌传统子查询需自连接和聚合计数&#xff1a;sqlSELECT e1.name, e1.salary, (S…

深度学习:预训练和warm up的区别

“预训练&#xff08;Pre-training&#xff09;”和“Warm-up&#xff08;预热&#xff09;”是深度学习中常见的两个训练策略&#xff0c;它们虽然都在训练初期起作用&#xff0c;但本质和目的完全不同。一、预训练&#xff08;Pre-training&#xff09;1. 定义预训练是指&…

Apache Ignite中分布式信号量(Distributed Semaphore)的说明和使用示例

这段内容是关于 Apache Ignite 中 分布式信号量&#xff08;Distributed Semaphore&#xff09; 的说明和使用示例。我们来一步步解析&#xff0c;帮助你深入理解它的含义和用途。&#x1f539; 一、什么是 Semaphore&#xff08;信号量&#xff09;&#xff1f; 在并发编程中&…

怎么提升服务器的防攻击能力!

提升服务器的防攻击能力需要从​​架构设计、技术防护、运维管理​​等多维度入手&#xff0c;覆盖网络层、系统层、应用层及数据层的安全防护。以下是具体的策略和实践方法&#xff1a;​​一、基础安全加固&#xff1a;消除自身漏洞​​服务器自身的脆弱性是最常见的攻击入口…

vscode配置rust环境

1.官网下载vscode&#xff0c;安装 2.vscode命令行运行&#xff1a; Invoke-WebRequest https://win.rustup.rs/x86_64 -OutFile rustup-init.exe然后&#xff1a; .\rustup-init.exe3.验证 先配置path&#xff1a; $env:Path ";$env:USERPROFILE\.cargo\bin"查看是…

最新版 HarmonyOS NEXT 开发工具安装教程:如何在 macOS 系统安装 DevEco Studio 5.0.3 编辑器?

最新版 HarmonyOS NEXT 开发工具安装教程&#xff1a;如何在 macOS 系统安装 DevEco Studio 5.0.3 编辑器&#xff1f; 什么是 DevEco Studio&#xff1f; DevEco Studio 是华为为 HarmonyOS 开发的强大集成开发环境&#xff08;IDE&#xff09;&#xff0c;专为开发 Harmony…

电商项目统一认证方案设计与实战

1. 微服务网关整合 OAuth2.0 设计思路分析 网关整合 OAuth2.0 有两种思路&#xff0c;一种是授权服务器生成令牌, 所有请求统一 在网关层验证&#xff0c;判断权限等操作&#xff1b;另一种是由各资源服务处理&#xff0c;网关只做请求 转发 。 比较常用的是第一种&#xf…