滑動視窗與雙指標

Amroning發表於2024-10-26

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];    
}

相關文章