剑指 Offer 59 - I. 滑动窗口的最大值
剑指 Offer 59 - I. 滑动窗口的最大值
class Solution { public int[] maxInWindows(int[] nums, int k) { if(nums == null || nums.length == 0) return new int[0]; int[] res = new int[nums.length - k + 1]; Deque<Integer> q = new LinkedList<>(); int j = 0; for(int i = 0; i < nums.length; i ++){ if(!q.isEmpty() && i - q.peek() >= k){ q.poll(); //弹出第一个 } while(!q.isEmpty() && nums[i] >= nums[q.peekLast()]){ q.pollLast(); //保持单调队列 } q.offer(i); //入队 if(i >= k - 1){ res[j++] = nums[q.peek()]; //res更新 } } return res; }}
作者: 想用包子换论文
出处:https://www.cnblogs.com/vccyb/p/14667948.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。