首页 > 其他分享 >滑动窗口与双指针

滑动窗口与双指针

时间:2024-10-26 20:09:57浏览次数:1  
标签:下标 窗口 元素 更新 滑动 指针

1.定长滑动窗口套路

参考:灵神的总结

入-更新-出:

入: 下标为 i 的元素进入窗口,更新相关统计量。如果 i<k−1 则重复第一步。
更新: 更新答案。一般是更新最大值/最小值。
出: 下标为 i−k+1 的元素离开窗口,更新相关统计量。

for(int i=0;i<nums.size();++i){
    //1.进入窗口操作,比如:
    cnt+=nums[i];
    
    //如果目前窗口大小不足指定窗口大小,就continue(就是刚开始遍历的时候,窗口大小都是从1开始的,注意下标从0开始,所以下面判断是k-1)
    if(i < k - 1)
        continue;
    
    //2.到这里肯定是窗口大小,可以求答案了,比如这里求个窗口最大值:
    ans = max(ans, cnt);
    
   //3.最后让窗口中的第一个元素离开窗口:
    cnt -= num[i - k + 1];    
}

标签:下标,窗口,元素,更新,滑动,指针
From: https://www.cnblogs.com/Amroning/p/18504430

相关文章

  • 【C语言】指针的运算
    目录1.指针加减整数2.指针减指针3.指针间的关系运算1.指针加减整数指针加减整数并不是简单的地址加减。在计算机内存中,每个变量都有一个唯一的存储位置,这个位置由其地址表示。当你对指针执行加法或减法操作,并传递一个整数值,实际上是改变了指针指向的位置,使其指向新......
  • 刷题总结——滑动窗口与双指针
    总结问题类型滑动窗口(同向双指针)定长不定长求最长/最大求最短/最小求子数组个数单序列双指针(同向/相向)同向:快排求partition的Lobos算法相向:三数之和(保证有序)注意去重双序列双指针双指针子序列判断多指针荷兰旗lowmidhigh00n初始化直到mid与high......
  • Autohotkey脚本bug.n(窗口管理器)怎样使用
    使用AutoHotkey脚本bug.n(窗口管理器)的步骤:一、安装AutoHotkey;二、下载并安装bug.n;三、创建bug.n配置文件;四、编写bug.n脚本;五、运行bug.n脚本等。安装AutoHotkey是指,首先要在计算机上安装AutoHotkey软件,它是一个免费且强大的自动化脚本语言,用于创建自定义的快捷键和脚本。一、......
  • C语言指针练习
    题目如下:有1个班,3个学生,各学4门课,计算总平均分以及输出第n个学生的成绩示例代码如下:#include<stdio.h>intmain(){voidaverage(float*p,intn);voidsearch(float(*p)[4],intn);floatscore[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};......
  • C# 拖动文件到其他程序窗口
    支持拖动文件实现一个支持拖动文件到其他程序窗口的文件管理器,可以通过使用C#的WindowsForms或WPF来完成。下面是一个基本的示例,展示如何在WindowsForms应用程序中实现这一功能。步骤:创建WindowsForms应用程序:使用VisualStudio创建一个新的WindowsForms......
  • 【优选算法】——滑动窗口(下篇)
    目录1、水果成篮2、找到字符串中所有字母异位词3、串联所有单词的子串4、最小覆盖子串1、水果成篮你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示,其中 fruits[i] 是第 i 棵树上的水果 种类 。你想要尽可能多地收集水果......
  • [QT基础系列]窗口QWidget
    QWidget所有窗口类的基类Qt中有3个窗口的基类:QWidget、QMainWindow、QDialog在创建Qt工程时,会让我们选择继承自哪一个窗口类其中,QMainWindow、QDialog都是继承自QWidge所有控件类的基类Qt中的控件类(按钮、输入框、单选框等)也属于窗口类它们的基类也是QWid......
  • C++ 内存管理 堆和栈、内存泄漏、内存分配、指针与内存、智能指针、malloc和free、new
    1.堆和栈的区别1.**管理方式**:-**栈**:自动管理。当函数调用时,局部变量会自动分配在栈上。函数执行完毕后,这些变量会自动释放。-**堆**:手动管理。程序员需要使用`new`来在堆上分配内存,并在不再需要时使用`delete`来释放。2.**使用方式和寿命**:-**栈**:用......
  • 关于C语言指针类型的总结
    前言我个人将目前在C语言中所遇到的指针归类为8种,至于为何写第九点,是因为我个人认为第九点极容易与第五点混淆,故总结如下:1.普通指针普通指针即最常见的如:int*、char*等甚至于也可将一个数组如arr[5]的数组名arr看作是指针类型(因为指针本质上就是地址,而arr是该数......
  • vue - 自定义吸附窗口
    业务需求以共享单车界面为例,地图上分布着大量的共享单车,鼠标悬浮在单车上,弹出一个吸附弹窗,内容显示单车详细信息。分析很明显,因为单车的数量可能非常多,我们不可能用显示隐藏的方式实现;合理的做法是,所有单车公用一个弹窗面板,悬浮的时候刷新面板上的数据。方案看着改吧,element......