当前位置: 首页 > news >正文

【算法专题突破】滑动窗口 - 长度最小的子数组(9)

目录

1. 题目解析

2. 算法原理

3. 代码编写

写在最后:


1. 题目解析

题目链接:209. 长度最小的子数组 - 力扣(Leetcode)

 要注意的是,题目给的是正整数,

而题目要求并不难理解,就是找最短的子数组。

2. 算法原理

如果使用暴力的话,就是一个O(N3)的算法,复杂度很高,

我们可以用滑动窗口来做,滑动窗口是一个形象的名字,其实本质上也是一种双指针算法,

两个双指针同向移动,不回退,我们就将其称之为滑动窗口,因为就像窗口一样滑动。

那么我们怎么使用滑动窗口来做这道题呢?

1. 用两个指针作为窗口的左右边界

2. 进窗口

3. 判断如何出窗口

哪这道题来说:

两个指针 left 和 right 先初始化成0,

如果和小于目标值就让right++,

如果和大于等于目标值就记录结果,然后让 left++。 

3. 代码编写

class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) {int n = nums.size(), sum = 0, len = INT_MAX;int left = 0, right = 0;while(right < n) {sum += nums[right];while(sum >= target) {len = min(len, right - left + 1);sum -= nums[left++];}right++;}return len == INT_MAX ? 0 : len;}
};

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果感到有所收获的话可以给博主点一个哦。

如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~

相关文章:

【算法专题突破】滑动窗口 - 长度最小的子数组(9)

目录 1. 题目解析 2. 算法原理 3. 代码编写 写在最后&#xff1a; 1. 题目解析 题目链接&#xff1a;209. 长度最小的子数组 - 力扣&#xff08;Leetcode&#xff09; 要注意的是&#xff0c;题目给的是正整数&#xff0c; 而题目要求并不难理解&#xff0c;就是找最短的…...

骨传导与入耳式耳机哪种音质好?该如何选择?

骨传导耳机和传统耳机的定位不同&#xff0c;所以没有可比性&#xff0c;如果一定要说哪款耳机音质好&#xff0c;答案是入耳式耳机音质比较好&#xff01; 首先入耳式耳机是直接塞入耳朵佩戴&#xff0c;会最大程度减少漏音&#xff0c;同时不会改变音质&#xff0c;会直接传…...

【多线程】Timer任务定时器实现与盲等原子性问题的解决

目录 一、定时器 二、标准库中的Timer 三、代码实现 四、死锁 一、定时器 代码中的定时器通常是在一定的时间执行对应的代码逻辑 二、标准库中的Timer public static void main(String[] args){Timer timer new Timer();timer.schedule(new TimerTask() {Overridepublic…...

SpringCloud-GetWay 路由网关

接上文 SpringCloud-Hystrix 服务降级与熔断 微服务也是如此&#xff0c;不是所有微服务需要直接暴露给外部调用&#xff0c;就需要使用路由机制&#xff0c;添加一层防护&#xff0c;让所有的请求全部通过路由来转发到各个微服务&#xff0c;并转发给多个相同微服务实例&#…...

使用生成式 AI 增强亚马逊云科技智能文档处理

数据分类、提取和分析对于处理大量文档的组织来说可能具有挑战性。传统的文档处理解决方案是手动的、昂贵的、容易出错的,并且难以扩展。利用 Amazon Textract 等 AI 服务,亚马逊云科技智能文档处理(IDP)允许您利用业界领先的机器学习(ML)技术来快速准确地处理任何扫描文档或图…...

谈论浏览器内核

浏览器内核是指浏览器使用的渲染引擎&#xff0c;用于解析并显示网页的内容。主要有以下几种浏览器内核&#xff1a; Trident&#xff08;IE内核&#xff09;&#xff1a;由Microsoft开发&#xff0c;被用于Internet Explorer浏览器。目前已经被Edge取代。 Gecko&#xff1a;…...

电商卖家保障数据隐私和安全用什么安全的浏览器?

在如今信息爆炸的时代&#xff0c;个人数据安全成为了一个备受关注的话题。越来越多的人意识到&#xff0c;保护个人数据的重要性。为此&#xff0c;安全浏览器应运而生&#xff0c;为用户提供更加安全可靠的上网环境&#xff0c;保障个人数据的安全。 一、数据安全的重要性 …...

ECS通过DNAT将C非专线网段并网

1.问题描述 客户需求&#xff1a;ECS1需要访问140.131.208.0/24 &#xff0c;由于140.131.208.0/24网段属于公网地址&#xff0c;在CSW侧为进行并网。 解决方案&#xff1a;故将ECS1发起的请求其在云内ECS2做DNAT&#xff0c;将该网段转换成CSW并网网段170.101.253.0/24&…...

g++模板显式实例化big file例子

前言 模板是编程中高级工具&#xff0c;类似C语言的宏生成代码&#xff0c;但却比宏更强大&#xff0c;例如&#xff0c;对于调试的支持&#xff0c;以及实现更严格的语法检查。 如果用节省代码来定义工具的好坏&#xff0c;无疑不管用C语言宏来生成代码&#xff0c;或者用C的…...

Redis 删除策略

文章目录 Redis 删除策略一、过期数据二、数据删除策略1、定时删除2、惰性删除3、定期删除4、删除策略对比 三、逐出算法 Redis 删除策略 一、过期数据 Redis是一种内存级数据库&#xff0c;所有数据均存放在内存中&#xff0c;内存中的数据可以通过TTL指令获取其状态 XX &a…...

自动化运维——ansible (五十二) (01)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 一、概述 1.1 为什么要用自动化运维软件 1.2 自动化运维 1.3 自动化运维要注意的方面 1.4 自动化运维主要关注的方面 1.5 常见的开源自动化运维软件 1.6 自动化运维软件…...

渗透测试漏洞原理之---【不安全的反序列化】

文章目录 1、序列化与反序列化1.1、引入1.2、序列化实例1.2.1、定义一个类1.2.2、创建 对象1.2.3、反序列化1.2.4、对象注入 2、漏洞何在2.1、漏洞触发2.1.2、定义一个类2.1.3、定义一个对象2.1.3、反序列化执行代码 2.2 为什么会这样 3、反序列化漏洞攻防3.1、PHP反序列化实例…...

建站系列(四)--- Web服务器之Apache、Nginx

目录 相关系列文章前言一、简介二、Apache与Nginx&#xff08;1&#xff09;Apache与Nginx的区别&#xff08;2&#xff09;Nginx相对于Apache的优点&#xff08;3&#xff09;Apache相对于Nginx 的优点&#xff08;4&#xff09;选择 三、反向代理与正向代理 相关系列文章 建…...

TCP和UDP的区别

TCP和UDP的区别 1、TCP面向连接&#xff08;如打电话要先拨号建立连接&#xff09;;UDP是无连接的&#xff0c;即发送数据之前不需要建立连接 2、TCP提供可靠的服务。也就是说&#xff0c;通过TCP连接传送的数据&#xff0c;无差错&#xff0c;不丢失&#xff0c;不重复&…...

MBR、GPT、LVM分区

GPT分区&#xff08;支持大于2T的空间分区UEFI系统&#xff09; 支持128个主分区 (parted) mklabel New disk label type? gpt (parted) mkpart Partition name? []? vdb1 File system type? [ext2]? ext4 Start? 0% End? 40% (parted) mkpart Partition name? []…...

uniapp 下拉刷新

需求&#xff1a;我使用一个滚动列表&#xff0c;需要下拉刷新页面的功能 下拉刷新的情况取决于滚动列表使用的技术 第一 种&#xff1a;页面滚动 产生页面很简单&#xff0c;只需要列表长度超过页面高度&#xff0c;就直接产生了滚动条。 处理页面滚动的下拉刷新。 1. 配置…...

ifstream之seekg/tellg

声明&#xff1a;我个人特别讨厌&#xff1a;收费专栏、关注博主才可阅读等行为&#xff0c;推崇知识自由分享&#xff0c;推崇开源精神&#xff0c;呼吁你一起加入&#xff0c;大家共同成长进步&#xff01; 在文件读写的时候&#xff0c;一般需要借助fstream来进行文件操作&a…...

OpenCV 01(图像加载与显示)

一、机器视觉 现在说的机器视觉(Machine Vision)一般指计算机视觉(Computer Vision), 简单来说就是研究如何使机器看懂东西。就是是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉&#xff0c;并进一步做图形处理&#xff0c;使电脑处理成为更适合人眼观察或传…...

1-Pytorch初始化张量和张量的类型

1-Pytorch初始化张量和张量的类型 1 导入必备库 import torch import numpy as np2 初始化张量 # 初始化张量 t torch.tensor([1,2])#.type(torch.FloatTensor) print(t) print(t.dtype)输出&#xff1a; tensor([1, 2]) torch.int643 创建float型张量 # 创建float型张量…...

诊断网络卡的原因

首先&#xff0c;通过ipconfig和ping命令来诊断。 手头要有一台Windows电脑。在dos窗口下&#xff0c;输入ipconfig&#xff0c;可以查看到本机“手动设置”或者“自动获取”的IP地址。 这里有几种可能性&#xff1a; IP地址和网关地址都正确。&#xff08;不存在问题&#xf…...

DeepSeek总结的DwarfStar 4:专为 DeepSeek V4 Flash 设计的小型原生推理引擎

来源&#xff1a;https://github.com/antirez/ds4 DwarfStar 4 DwarfStar 4 是一个为 DeepSeek V4 Flash 设计的小型原生推理引擎。它是有意限定了范围的&#xff1a;不是通用的 GGUF 运行器&#xff0c;不是其他运行时的封装器&#xff0c;也不是一个框架。其主要路径是一个…...

手机号到QQ号查询技术实现原理与TEA加密通信架构解析

手机号到QQ号查询技术实现原理与TEA加密通信架构解析 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq phone2qq是一个基于Python实现的逆向工程工具&#xff0c;通过分析腾讯QQ客户端的通信协议&#xff0c;实现了通过手机号查询对应…...

Docker 学习笔记:镜像分发、容器运行与资源限制

Docker 学习笔记&#xff1a;镜像分发、容器运行与资源限制本笔记续接上一部分&#xff0c;涵盖镜像命名与分发、容器的核心操作、底层技术&#xff08;cgroup/namespace&#xff09;以及 CPU/内存资源限制。所有案例代码均经验证&#xff0c;直接可用。8. 镜像命名与分发最佳实…...

蓝牙窃密攻防实战:从协议漏洞到固件后门,国家安全部警示的近场威胁全解析

2026年5月11日&#xff0c;国家安全部官方发布重磅警示&#xff0c;明确指出蓝牙设备已成为不法分子实施近距离窃密、监听、跟踪的"隐形獠牙"。从日常使用的无线耳机、智能手表&#xff0c;到办公场景的蓝牙键鼠、会议音箱&#xff0c;再到工业控制中的蓝牙传感器&am…...

3大技术创新:重新定义Windows Android生态的工具体验

3大技术创新&#xff1a;重新定义Windows Android生态的工具体验 【免费下载链接】wsa-toolbox A Windows 11 application to easily install and use the Windows Subsystem For Android™ package on your computer. 项目地址: https://gitcode.com/gh_mirrors/ws/wsa-tool…...

03-从Chat到Act-Agent行动闭环的产品心理学拆解

从Chat到Act&#xff1a;Agent行动闭环的产品心理学拆解系列一&#xff1a;AI Agent GAP模型 | 第3篇&#xff08;深度型&#xff09; 从"一问一答"到"自主行动"&#xff0c;拆解Agent行动闭环背后的行为设计逻辑。本文你将获得 &#x1f504; Agent行动闭…...

蓝牙6.0 Channel Sounding 基于接入地址的定时估计原理

基于接入地址的定时估计 先看下core spec的描述&#xff1a;蓝牙Core Spec Vol 6 Part H中 3.2节「基于接入地址的定时估计」&#xff0c;它定义了两种用于CS_SYNC包到达时间&#xff08;ToA&#xff09;估计的方法&#xff0c;是RTT测距的基础定时方案。下面我逐段拆解&#x…...

RAG 系统优化全流程:从数据入库到召回排序

RAG(Retrieval-Augmented Generation)系统的检索质量直接决定生成内容的上限。本文从工程落地角度,系统梳理 RAG 检索链路的三个核心阶段——入库、查询与召回。针对每个阶段的关键技术(语义分割、问答模拟、查询改写、语义校验、混合检索、语义重排)给出定义、问题背景、…...

Python热重载工具Reloadium:实现函数级代码热更新与AI辅助开发

1. 项目概述&#xff1a;Reloadium&#xff0c;一个改变Python开发工作流的“时光机”如果你和我一样&#xff0c;是个常年泡在Python项目里的开发者&#xff0c;那你一定对“修改代码 -> 停止程序 -> 重新运行 -> 等待启动”这个循环深恶痛绝。尤其是在调试Web后端&a…...

开源无模式数据表格框架:构建自主可控SaaS应用的核心组件

1. 项目概述&#xff1a;一个为SaaS而生的开源数据表格框架如果你正在寻找一个能嵌入到自己SaaS产品里的数据表格组件&#xff0c;或者想搭建一个类似CRM、内部仪表盘的工具&#xff0c;并且对Airtable、Clay这类产品的闭源、云依赖和定价模式感到头疼&#xff0c;那么你找对地…...