题解 | #滑动窗口的最大值#
滑动窗口的最大值
https://www.nowcoder.com/practice/1624bc35a45c42c0bc17d17fa0cba788
import java.util.*;
public class Solution {
public ArrayList<Integer> maxInWindows(int [] num, int size) {
Deque<Integer> que = new LinkedList<>();
ArrayList<Integer> list = new ArrayList<>();
for(int i = 0; i < size; ++i){
while(!que.isEmpty() && num[i] > que.peekLast()){
que.pollLast();
}
que.addLast(num[i]);
}
list.add(que.peekFirst());
for(int i = size; i < num.length; i++){
if(num[i-size] == que.peekFirst()){
que.pollFirst();
}
while(!que.isEmpty() && num[i] > que.peekLast()){
que.pollLast();
}
que.addLast(num[i]);
list.add(que.peekFirst());
}
return list;
}
}
基恩士成长空间 442人发布
