class Solution {
public int[] maxSlidingWindow(int[] nums, int k) {
if (nums.length == 0)
return new int[0];
int res_length = nums.length - k + 1;
int[] res = new int[res_length];
LinkedList<Integer> deque = new LinkedList<Integer>();
for (int i = 0; i < nums.length; i ++)
{
if (!deque.isEmpty() && deque.peekFirst() == i - k) deque.poll();
while(!deque.isEmpty() && nums[deque.peekLast()] <= nums[i]) deque.removeLast();
deque.offerLast(i);
if (i >= k - 1) res[i - k + 1] = nums[deque.peek()];
}
return res;
}
}
05-06
05-06
05-06
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交