解题思路:
使用单调队列和滑动窗口
队列按从大到小放入, 即队列的首位值就是滑动窗口区间的最大值
- 如果队列首位值(即最大值)不在窗口区间,删除首位
- 如果新增的值小于队列尾部值,将该值加到队列尾部
- 如果新增值大于队列尾部值,删除队列中比新增值小的值,再把新增值加入到队列中
- 如果新增值大于队列中所有值,删除所有值,然后把新增值放到队列首位,保证队列一直是从大到小
class Solution {
public int[] maxSlidingWindow(int[] nums, int k) {
if(nums.length == 0) return nums;
Deque<Integer