首页 > 其他分享 >滑动窗口(双指针的又一应用)

滑动窗口(双指针的又一应用)

时间:2024-01-11 12:22:47浏览次数:27  
标签:窗口 nums int nummin 滑动 指针

滑动窗口相当于双指针的变形,通过j指向末尾边界,这样遍历就只有O(n)的数量级,再通过i指针作为起始边界,while循环确定最短的长度。因为i j所框定的边界像窗口,所以叫滑动窗口。
用于解决的问题是最优区间的问题,记忆方法是右遍历,左判断,确定最佳区间。
还有一个技巧是可以用INT_MAX表示一个很大的数。

点击查看代码
class Solution {
public:
    int minSubArrayLen(int target, vector<int>& nums) {
int n=nums.size();int nummin=INT32_MAX;
int i=0;int sum=0;
for(int j=0;j<n;j++){
sum+=nums[j];
while(sum>=target){
   nummin= min(nummin,j-i+1);
sum-=nums[i];
i++;
}
}
if(nummin==INT32_MAX){
return 0;
}
else{return nummin;}
    }
};

标签:窗口,nums,int,nummin,滑动,指针
From: https://www.cnblogs.com/yun-che/p/17958290

相关文章

  • psql窗口函数 ​​ROW_NUMBER的应用
    我可以通过一个简单的例子来说明使用窗口函数 ROW_NUMBER() 结合 LEFTJOIN 来只映射(mapping)第一个匹配项的用法。假设我们有两个表:orders 和 customers。我们想要连接这两个表,但只想要每个订单对应的第一个客户(如果有多个客户与同一订单相关联的话)。使用窗口函数的情况:表结......
  • 双指针(1)
    目录344反转字符串替换数字反转单词null344反转字符串我如果要反转,就是最前面和最后面的字符进行交换,//双指针的应用classSolution{public:voidreverseString(vector<char>&s){intleft=0,right=s.size()-1;while(left<right){......
  • 双指针法又一感悟
    最开始做的时候没想到双指针法,用了简单的冒泡排序结果超时了,题解中的sort函数用的是快排。点击查看代码voidquick_sort(inta[],intl,intr){if(l<r){inti,j,x;i=l;j=r;x=a[i];while(i<j)......
  • 数组指针
    在数组指针中,*和[]的意义是相似的,都是优先降维数在降指针的级数比如p是一个指向n维数组的一级指针,那么p[][][]就是一个指向n-3维数组的指针,打了n个中括号之后就变成了指向一个点的指针,此时再*一下就变成了了值(或者再括号一下)如果p是一个指向n维数组的三级指针,那么打了n个中括号......
  • 《算法竞赛》---三指针
    ----双指针(尺取法)1.找出指定和的整数对----p37(书页)哈希表#include<bits/stdc++.h>usingnamespacestd;inta[100010];intmain(){ios::sync_with_stdio(false);cin.tie();cout.tie();unordered_map<int,bool>q;intn,m;cin>>n>>m;fo......
  • 在IDEA中配置使用DOC(cmd)命令行窗口
    在IDEA中配置使用DOC(cmd)命令行窗口一、基本设置步骤①中文设置->工具->终端->修改shell路径为C:\Windows\System32\cmd.exe(cmd.exe路径)。②英文Settings...->Tools->Terminal->将Shellpath修改为C:\Windows\System32\cmd.exe(cmd.exe路径)。二、设置演......
  • Flink的waterMark概念解释 watermark是flink为了处理event time窗口计算提出的一种机
    Flink的waterMark概念解释watermark是flink为了处理eventtime窗口计算提出的一种机制,本质上就是一个时间戳,代表着比这个时间早的事件已经全部进入到相应的窗口,后续不会在有比这个时间小的事件出现,(触发)基于这个前提我们才有可能将eventtime窗口视为完整并触发窗口的计算。St......
  • C++指针详解
    定义:指针是一个整数,一种存储内存地址的数字内存就像一条线性的线,在这条街上的每一个房子都有一个号码和地址类似比喻成电脑,这条街上每一个房子的地址是一个字节我们需要能够准确找到这些地址的方法,用来读写操作因此,指针就是这些地址。不要考虑类型,无论是什么类型的指针,都是用来保......
  • 【flink番外篇】9、Flink Table API 支持的操作示例(3)- 通过API查询表和使用窗口函数的
    Flink系列文章一、Flink专栏Flink专栏系统介绍某一知识点,并辅以具体的示例进行说明。1、Flink部署系列本部分介绍Flink的部署、配置相关基础内容。2、Flink基础系列本部分介绍Flink的基础部分,比如术语、架构、编程模型、编程指南、基本的datastreamapi用法、四大基......
  • C 语言指针完全指南:创建、解除引用、指针与数组关系解析
    C语言中的指针创建指针我们可以使用引用运算符&获取变量的内存地址:intmyAge=43;//一个int变量printf("%d",myAge);//输出myAge的值(43)printf("%p",&myAge);//输出myAge的内存地址(0x7ffe5367e044)指针是一个将另一个变量的内存地址作为其值的变量。......