【滑动窗口】算法总结

文章目录

  • 滑动窗口算法总结
    • 1.暴力求解vs滑动窗口
    • 2.需要注意的细节问题
  • 2.滑动窗口的基本模板
    • 1.非固定窗口大小的滑动窗口
    • 2.固定窗口大小的滑动窗口
      • 细节


滑动窗口算法总结

1.暴力求解vs滑动窗口

遇到那些可以转化成一个子数组的长度的问题时,往往需要用到双指针。

在暴力求解的情况下,在遇到判断条件不成立时,往往需要从right回到left重新往后走。

但是如果可以让right没有往回走的必要时,就产生了”同向双指针“,这时,就引入了滑动窗口的解决办法。

2.需要注意的细节问题

每一道题开始都不会马上想到要滑动窗口,都是在暴力求解(On^2)的基础上,对指针进行优化,得到同向双指针的。

所以在暴力写出来时,发现能提高大部分的示例,但总有一些超长示例导致超时。

首先得写出暴力求解的办法。

暴力求解的情况下,大部分题都是有两层循环的,一层循环是让right < n,一层是让left < n。
每次right往后走,都会有一个变量记住这个nums[right],进行累加或者其他操作。
当该变量不满足target的要求时,就需要重新让right会到left的位置重新开始,而left会先往后走一步。

2.滑动窗口的基本模板

这里是引用
其中,更新结果的顺序不是固定的,根据题目的实际情况判断需要在哪个位置更新结果。

1.非固定窗口大小的滑动窗口

2.固定窗口大小的滑动窗口

细节

  • 1.使用一个count变量+双哈希表来维护,在判断的时候就不用再进行遍历了。
    count变量一般用来记录窗口内有效字符/有效字符串的大小。

  • 2.一般来说,在判断层面,有时候是符合条件的出窗口

  • 有时候是不符合条件的出窗口。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

(undone) 声音信号处理基础知识(2)

来源&#xff1a;https://www.youtube.com/watch?vbnHHVo3j124 复习物理知识&#xff1a; 声音由物体的振动产生 物体振动会导致空气分支振荡 某一处的空气气压变化会创造一个波 声音是机械波 空气的振荡在空间中传递 能量从空间中的一个点到另一个点 机械波需要媒介&#x…

中国电子学会202406青少年软件编程(Python)等级考试试卷(四级)真题

青少年软件编程(Python)等级考试试卷(四级)2024-6 一、单选题(共25题, 共50分) 1.执行以下程序后所输出的结果是?( ) A 20 B 41 C 21 D 91 2.以下说法错误的是?( ) A python中可以在不同的自定义函数中声明相同名字的变量,使用时不会造成数据混…

前端框架Vue、React、Angular、Svelte对比

在对比 React、Vue.js、Angular 和 Svelte 时&#xff0c;除了在高层次的特性上有显著差异&#xff0c;它们在核心设计理念和底层实现机制上也有明显的不同。为了清晰地理解这些框架&#xff0c;我们可以从以下几个方面来分析它们的核心不同点和底层不同点。 1. 框架类型和设计…

【学习笔记】STM32F407探索者HAL库开发(四)F103时钟系统配置

【学习笔记】STM32F407探索者HAL库开发&#xff08;四&#xff09;F103时钟系统配置 1 STM32F1时钟树1.1 STM32F103时钟系统图1.2 STM32F103时钟树简图1.2.1 高速部分1.2.2 低速部分 1.3 函数配置1.4 时钟输出1.5 STM32CubeMX时钟树配置F11.6 时钟系统对与嵌入式开发的重要性 1…

Qt-QLabel 添加图片并设置 GIF 图动态效果

Qt-QLabel 添加图片并设置 GIF 图动态效果 一、添加图片资源并设置图片 选择标签&#xff0c;拖拉到界面上&#xff0c;然后选择器属性 picmap   选择设置&#xff0c;在这里添加图片资源   点击左边的加号符号按钮添加前缀&#xff0c;并设置前缀名&#xff0c;如果已经…

Nginx静态资源优化、压缩、缓存处理

一、静态资源优化配置语法 Nginx对静态资源如何进行优化配置。这里从三个属性配置进行优化&#xff1a; sendfile on; tcp_nopush on; tcp_nodeplay on; &#xff08;1&#xff09;sendfile&#xff0c;用来开启高效的文件传输模式。 语法sendfile on |off;默认值sendfile …

奥比中光深度相机相关使用内容

奥比中光深度相机相关使用内容 Windows平台测试官方软件关于python环境的配置1、安装CMake2、安装Visual Studio3、项目地址下载4、配置Visual Studio5、完成基于Python的SDK配置官网教学视频地址 3D视觉开发者社区 官方文档地址 效果: Windows平台测试官方软件 Window…

一文让你了解微服务契约测试

谈到微服务&#xff0c;大家都想到契约测试&#xff0c;到底什么是契约测试呢&#xff0c;为什么要使用契约测试呢&#xff0c;关于这样的文章很多&#xff0c;本文将结合Spring Boot让你了解微服务契约测试。 首先我们来看一下微服务&#xff0c;微服务是一种分布式结构&…

详细介绍MES系统的生产监控模块

MES系统的监控模块是系统的重要组成部分&#xff0c;它负责实时监控生产过程中的各项关键指标和数据&#xff0c;以确保生产活动的顺利进行和高效管理。以下是MES系统监控模块的详细介绍&#xff1a; 一、MES系统监控模块的主要功能 实时数据采集&#xff1a; 监控模块通过传…

解决uniapp开发的app,手机预览,上下滑动页面,页面出现拉伸,抖动的效果问题,

在pages.json文件里“globalStyle”下面的"app-plus"里加入"bounce": "none"即可 "app-plus": { "bounce": "none", //关闭窗口回弹效果 }

MFC -文件类控件

前言 各位师傅大家好&#xff0c;我是qmx_07&#xff0c;今天给大家讲解MFC中的文件类 MFC文件类 在MFC中&#xff0c;CFILE 是基本的文件操作类&#xff0c;提供了读取、写入、打开、关闭等操作方法主要成员函数:Open(用于打开文件&#xff0c;设置模式 例如 只读 只写 读…

(done) 声音信号处理基础知识(1)

来源&#xff1a;https://www.youtube.com/watch?viCwMQJnKk2c 声学处理应用场景如下 这个系列的内容包括如下&#xff1a; 作者的 slack 频道 油管主的 github repo: https://github.com/musikalkemist/AudioSignalProcessingForML

滑动条QSlider

可以在一个范围内拖动。 常用属性和方法 值 包括当前值、最大值、最小值 // 获取和设置当前值 int value() const; void setValue(int);// 获取和设置最大值 int maximum() const; void setMaximum(int);// 获取和设置最小值 int minimum() const; void setMinimum(int);//…

【深度学习】聊一聊正则化

在机器学习中&#xff0c;正则化是一种常用的技术&#xff0c;用于控制模型的复杂度&#xff0c;减少过拟合的风险。它通过在损失函数中引入额外的项来对模型的参数进行约束或惩罚&#xff0c;使模型更加简单、平滑或稀疏。我们在实际应用中&#xff0c;经常使用的是L1和L2正则…

内网渗透之中间人欺骗攻击-ARP攻击

ARP攻击 ARP协议简介 ARP全称为Address Resolution Protocol&#xff0c;即地址解析协议&#xff0c;它是一个根据IP地址获取物理地址的TCP/IP协议&#xff0c;主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机&#xff0c;并接收返回消息&#xff0c;以此确定…

李宏毅2023机器学习作业HW07解析和代码分享

ML2023Spring - HW7 相关信息&#xff1a; 课程主页 课程视频 Kaggle link 回来了 : ) Sample code HW07 视频 HW07 PDF 个人完整代码分享: GitHub | Gitee | GitCode P.S. HW7 的代码都很易懂&#xff0c;可以和 2024 年的新课&#xff1a;生成式AI导论做一个很好的衔接&#…

高性能string库-stringzilla

这段时间在优化服务耗时问题&#xff0c;其中perf打出来的热点显示&#xff0c;有一部分热点集中在string find. 由于之前看到sonic-cpp在使用simd加速string的一些操作&#xff0c;所以当时我想使用AVX2实现一版strstr来加速这个过程。但是在实现过程中&#xff0c;碰到一些问…

【速成Redis】03 Redis 五大高级数据结构介绍及其常用命令 | 消息队列、地理空间、HyperLogLog、BitMap、BitField

前言&#xff1a; 上篇博客我们讲到redis五大基本数据类型&#xff08;也是就下图的第一列&#xff09;。 【速成Redis】02 Redis 五大基本数据类型常用命令-CSDN博客文章浏览阅读1k次&#xff0c;点赞24次&#xff0c;收藏10次。该篇适用于速成redis。本篇我们将讲解&#…

Innodb存储架构

Innodb整体存储架构 Innodb是一款兼顾性能及可靠性的存储引擎&#xff0c;主要分为内存存储结构和磁盘存储结构&#xff0c;二者分别扮演着提高性能和数据持久化的工作 内存结构中定义了缓冲池、变更缓冲区、日志缓冲区、自适应哈希四个缓冲区&#xff0c;它们均是为提升查询…

linux网络-----传输层

前言 一.传输层&#xff1a; 数据要交接应用层先通过传输层&#xff08;给哪个程序发数据&#xff09; 传输层作用&#xff1a;负责数据能够从发送端传输接收端。对于应用层来说有许多服务&#xff0c;传输层怎么知道把数据发给那个应用服务&#xff1f; 这时就有了端口号&am…