leetcode 239 滑动窗口最大值

  1. class Solution {
  2. public int[] maxSlidingWindow(int[] nums, int k) {
  3. int len = nums.length;
  4. int[] res = new int[len-k+1];
  5. Deque<Integer> deque = new LinkedList<>();
  6. for(int i=0;i<len;i++){
  7. while(deque.size()>0&&nums[deque.peekLast()]<nums[i]){
  8. deque.pollLast();
  9. }
  10. deque.addLast(i);
  11. if(i>=k-1){
  12. while(deque.peek()<(i-k+1)){
  13. deque.poll();
  14. }
  15. res[i-k+1] = nums[deque.peek()];
  16. }
  17. }
  18. return res;
  19. }
  20. }