滑动窗口与双指针

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];    
}
posted @   Amroning  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示