官方题解的方法二
class Solution {
public int[] maxSlidingWindow(int[] nums, int k) {
int n = nums.length;
Deque deque = new LinkedList();
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;
}}
中while (deque.peekFirst() <= i - k) {
deque.pollFirst();
}
deque.peekFirst()返回的值不是一个数组中的元素值,怎么能和数组下标去比较的呢?如何理解