滑动窗口

滑动窗口的最大值

http://www.nowcoder.com/questionTerminal/1624bc35a45c42c0bc17d17fa0cba788

win中储存滑动窗口中非递增的序列(或者序列对应的下标都可)。

import java.util.*;
public class Solution {
    public ArrayList<Integer> maxInWindows(int [] num, int size){
        ArrayList<Integer> list=new ArrayList<>();
        if(num==null||num.length==0||size<=0) return list;
        Deque<Integer> win=new ArrayDeque<>();
        for(int l=0, r=0; r<num.length; r++){
            if(r-l>size-1) {
                if(win.peekFirst()==num[l]) 
                    win.removeFirst();
                l++;
            }
            while(!win.isEmpty()&&win.peekLast()<num[r]) 
                win.removeLast();
            win.addLast(num[r]);
            if(r-l==size-1) list.add(win.peekFirst());
        }
        return list;
    }
}
全部评论

相关推荐

兄弟们,实习都是在接各种api,该怎么包装简历
仁者伍敌:感觉我自己做小项目也是各种api啊,我要怎么包装简历
点赞 评论 收藏
分享
07-02 13:52
武汉大学 golang
骗你的不露头也秒
牛客87776816...:😃查看图片
点赞 评论 收藏
分享
05-20 21:57
已编辑
门头沟学院 Java
喜欢吃卤蛋的悲伤蛙在...:建信融通没消息吧,我2说有实习挂简历不理了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务