题解 | #滑动窗口的最大值#

滑动窗口的最大值

https://www.nowcoder.com/practice/1624bc35a45c42c0bc17d17fa0cba788

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param num int整型一维数组
     * @param size int整型
     * @return int整型ArrayList
     */
    public ArrayList<Integer> maxInWindows (int[] num, int size) {
        // write code here
        // <= 10000, Integer
        ArrayList<Integer> list = new ArrayList<Integer>();
        int len = num.length;
        if (len == 0 || size == 0 || len < size) return list;
        int index = 0;
        int count = 0;
        //-30亿
        long max = -3000000000L;
        // TreeSet<Integer> set = new TreeSet<Integer>();
        for (int i = 0; i < len; i++) {
            count++;
            if (num[i] > max) {
                max = num[i];
            }
            // System.out.println("count: " + count + ",max:" + max);
            if (count % size == 0) {
                list.add(Long.valueOf(max).intValue());
                // System.out.println("realMax: " + max);
                max = -3000000000L;
                //将2倒退回去
                i = i - size + 1;
                //如果剩下的不足size,直接结束即可
                if (i + size >= len) {
                    // System.out.println("break,i:" + i);
                    break;
                }
            }
        }
        // while(index+size-1<len){
        // for(int i =0; i<= index+size-1; i++){
        //     set.add(num[i]);
        // }
        // list.add(set.last());
        // set.clear();
        // }
        return list;
    }
}

全部评论

相关推荐

01-08 12:01
门头沟学院 Java
冰炸橙汁_不做oj版:不接好运
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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