一、题目
二、代码
class Solution
{
//同时维护下标和数值 单调减队列
public int[] maxSlidingWindow(int[] nums, int k)
{
Deque<Integer> deque = new LinkedList<>();
int length = nums.length;
int [] res = new int[length-k + 1];
int i = 0 ;
int index =0;
for(i=0; i<length ; i++)
{
//维护下标
while(!deque.isEmpty()&&deque.peek()<i-k+1)
{
deque.poll();
}
//维护单调
while(!deque.isEmpty()&&nums[deque.peekLast()]<nums[i])
{
deque.pollLast();
}
deque.offer(i);
if(i>=k-1)
{
res[index++] = nums[deque.peek()];
}
}
return res;
}
}