Advertisement
Guest User

Sliding Window Maximum

a guest
Feb 28th, 2022
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.59 KB | None | 0 0
  1. class Solution {
  2.     public int[] maxSlidingWindow(int[] nums, int k) {
  3.         int[] result = new int[nums.length - k + 1];
  4.         Deque<Integer> deque = new ArrayDeque<>();
  5.         for(int i=0; i<nums.length; i++) {
  6.             while(!deque.isEmpty() && deque.peekLast() < nums[i]) {
  7.                 deque.pollLast();
  8.             }
  9.             deque.offerLast(nums[i]);
  10.             if(i >= k - 1) {
  11.                 result[i - k + 1] = deque.peekFirst();
  12.                 if(nums[i - k + 1] == deque.peekFirst()) deque.pollFirst();
  13.             }
  14.         }
  15.         return result;
  16.     }
  17. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement