import java.util.LinkedList;
public class Slide {
public static int[] getMaxWindow(int[] arr, int w) {
if (arr == null || w < 1 || arr.length < w)
return null;
LinkedList<Integer> qmax = new LinkedList<Integer>();
int[] res = new int[arr.length - w + 1];
int index = 0;
for (int i = 0; i < arr.length; i++) {
while (!qmax.isEmpty() && arr[qmax.peekLast()] <= arr[i]) {
qmax.pollLast();
}
qmax.addLast(i);
if (qmax.peekFirst() == i - w) {
qmax.pollFirst();
}
qmax.addLast(i);
if (i >= w - 1) {
res[index++] = arr[qmax.peekFirst()];
}
}
}
}
滑 动 窗 口
最新推荐文章于 2024-08-08 14:30:51 发布