class Solution {
public int[] maxSlidingWindow(int[] nums, int k) {
int n = nums.length;
Deque<Integer> deque = new LinkedList<Integer>();
for (int i = 0; i < k; ++i) {
while (!deque.isEmpty() && nums[i] >= nums[deque.peekLast()]) {
deque.pollLast();
}
deque.offerLast(i);
}
int[] ans = new int[n - k + 1];
ans[0] = nums[deque.peekFirst()];
for (int i = k; i < n; ++i) {
while (!deque.isEmpty() && nums[i] >= nums[deque.peekLast()]) {
deque.pollLast();
}
deque.offerLast(i);
while (deque.peekFirst() <= i - k) {
deque.pollFirst();
}
ans[i - k + 1] = nums[deque.peekFirst()];
}
return ans;
}
}
相关文章
- 10-13LeetCode-239-剑指offer-滑动窗口的最大值-队列与栈-python
- 10-13队列、堆排序(239 滑动窗口最大值)
- 10-13【LeetCode】239. 滑动窗口最大值
- 10-13LeetCode-239-滑动窗口最大值
- 10-13滑动窗口最大值-队列
- 10-13leetcode 滑动窗口的最大值 困难
- 10-13滑动窗口中的最大值
- 10-13leetcode剑指 Offer 59 - I. 滑动窗口的最大值
- 10-13滑动窗口的最大值(数据结构单调队列)
- 10-13PyQt5基础学习-QSlider(滑动窗口) 1.QSlider().setMinimum(设置最小值) 2.QSlider().setMaximum(设置最大值) 3.QSlider().setS