239.滑动窗口的最大值
第一次做困难的题,虽然看完视频了理解了大概过程,但是不会写代码。虽然是看着写的,不过还是很有成就感。
class Solution {
public int[] maxSlidingWindow(int[] nums, int k) {
ArrayDeque<Integer> deque = new ArrayDeque<>();
int len = nums.length;
int[] res = new int[len-k+1];
int index = 0;
for(int i=0;i<len;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;
}
}```