美文网首页
Array:给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值

Array:给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值

作者: 敲一手烂代码 | 来源:发表于2016-05-23 10:26 被阅读597次
    public static ArrayList<Integer> maxInWindows(int[] num, int size) {
            ArrayList<Integer> arrayList = new ArrayList<Integer>();
            if (num==null||num.length==0||num.length<size||size==0) {
                return arrayList;
            }
            LinkedList<Integer> linkedList = new LinkedList<Integer>();
            for (int i = 0; i < num.length; i++) {
                while (!linkedList.isEmpty()&&num[linkedList.peekLast()]<num[i]) {
                    linkedList.pollLast();
                }
                linkedList.addLast(i);
                if (linkedList.peekFirst()==i-size) {
                    linkedList.pollFirst();
                }
                if (i>=size-1) {
                    arrayList.add(num[linkedList.peekFirst()]);
                }
        
            }
            return arrayList;
        }
    

    相关文章

      网友评论

          本文标题:Array:给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值

          本文链接:https://www.haomeiwen.com/subject/rmjarttx.html