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