import java.util.*;
public class Solution {
// 单调栈,单调递增
public ArrayList<Integer> maxInWindows(int [] num, int size) {
ArrayList<Integer> res = new ArrayList<>();
LinkedList<Integer> deque = new LinkedList<>();
int n = num.length;
for (int i = 0; i < n; i++ ){
while (!deque.isEmpty() && num[deque.peekLast()] < num[i]){
deque.removeLast();
}
deque.addLast(i);
if (i - deque.peekFirst() >= size){
deque.removeFirst();
}
if (i >= size - 1){
res.add(num[deque.peekFirst()]);
}
}
return res;
}
}
牛客网:NC82 滑动窗口的最大值
最新推荐文章于 2024-07-26 12:28:02 发布