public int[] maxSlidingWindow(int[] nums, int k) {
int n = nums.length;
int[] res = new int[n-k+1];
int idx = 0;
Deque<Integer> stack = new ArrayDeque<>();
for (int i = 0; i < n; i++) {
while (!stack.isEmpty() && stack.peekLast() < i - k + 1) {
stack.pollLast();
}
while (!stack.isEmpty() && nums[i] > nums[stack.peek()]) {
stack.pop();
}
stack.push(i);
if (i >= k - 1) {
res[idx++] = nums[stack.peekLast()];
}
}
return res;
}
239. 滑动窗口最大值
最新推荐文章于 2024-04-29 22:05:14 发布