• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

第12天–算法(滑动窗口最大值)

开发技术 开发技术 4小时前 2次浏览

滑动窗口最大值

public int[] maxSlidingWindow(int[] nums, int k) {

        if(nums == null || k < 1 || nums.length < k) {

            return new int[0];

        }

        LinkedList<Integer> list = new LinkedList<>();

        int res[] = new int[nums.length – k + 1];

        int index = 0;

        for(int i = 0;i < nums.length;i ++) {

            while(!list.isEmpty() && nums[i] >= nums[list.peekLast()]) {

                list.pollLast();

            }

            list.addLast(i);

            if(list.peekFirst() == i – k) {

                list.pollFirst();

            }

            if(i >= k – 1) {

                res[index ++] = nums[list.peekFirst()];

            }

        }

        return res;

    }


程序员灯塔
转载请注明原文链接:第12天–算法(滑动窗口最大值)
喜欢 (0)