本文主要是介绍剑指offer59.Ⅰ滑动窗口的最大值。简单易懂注释版0ms,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
class Solution {public int[] maxSlidingWindow(int[] nums, int k) {if(nums == null || nums.length == 0) return new int[0];int[] result = new int[nums.length - k + 1];Deque<Integer> queue = new ArrayDeque();// i:记录nums j:记录resultfor(int i = 0, j = 0; i < nums.length; i++){// poll():查看后删除 pop():只查看不删除// 数量大于滑动窗口大小,去掉多余的if(!queue.isEmpty() && i - queue.peek() >= k) queue.poll();// 找到最大值,注意得是peekLast和poolLast,nums[i]>后面的while(!queue.isEmpty() && nums[i] > nums[queue.peekLast()]) queue.pollLast();queue.add(i);if(i >= k - 1) result[j++] = nums[queue.peek()];}return result;}
}
这篇关于剑指offer59.Ⅰ滑动窗口的最大值。简单易懂注释版0ms的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!