239. 滑动窗口最大值
class Solution {
public int[] maxSlidingWindow(int[] nums, int k) {
ArrayDeque<Integer> deque = new ArrayDeque<>();
int n = nums.length;
int[]res = new int[n - k + 1];
int index = 0;
for(int i = 0;i < n;i++){
//一次只会移动一个,用了if没用while
if(!deque.isEmpty() && deque.peek() < i - k + 1 ){
deque.poll();//调用了pollfirst
}
//保证即将放进去的元素大于已经放进去的。
while(!deque.isEmpty() && nums[i] > nums[deque.peekLast()]){
deque.pollLast();
}
deque.offer(i);
if(i >= k - 1)res[index++] = nums[deque.peek()];// 调用return peekFirst();
}
return res;
}
}
347.前 K 个高频元素