滑动窗口

滑动窗口的最大值

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;
    }
}
全部评论

相关推荐

10-25 22:20
门头沟学院 Java
代码飞升_不回私信人...:同学院本,个人亮点去了,打招呼里面的废话也去了,学院本就是路边一条,明天拉满然后该学还是学,小厂也行尽量先有一段实习。另外你的项目描述写的不好,具体列一下可被提问的点,然后量化一下指标或者收益吧
投了多少份简历才上岸
点赞 评论 收藏
分享
纯真的河老师在喝茶:第一个是这个时间点岗位少,第二个是这个简历重复度太高了,10个有9个简历差不多的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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