LeetCode – Sliding Window Maximum (Java)

Given an array nums, there is a sliding window of size k which is moving from the very left of the array to the very right. You can only see the k numbers in the window. Each time the sliding window moves right by one position.

Java Solution

public int[] maxSlidingWindow(int[] nums, int k) {
    if(nums==null||nums.length==0)
        return new int[0];
 
    int[] result = new int[nums.length-k+1];
 
    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.offer(i);
 
        if(i+1>=k)
            result[i+1-k]=nums[deque.peek()];
    }
 
    return result;
}
Category >> Algorithms  
If you want someone to read your code, please put the code inside <pre><code> and </code></pre> tags. For example:
<pre><code> 
String foo = "bar";
</code></pre>
  • Kaushlendra Singh

    var arr = [1,3,-1,-3,5,3,6,7]
    var res = []
    var k = 3
    for(var i=k;i<=arr.length;i++){
    res.push(Math.max(…arr.slice(i-k,i)))
    }
    console.log(res)

  • Kaushlendra Singh


    var arr = [1,3,-1,-3,5,3,6,7]
    var res = []
    var k = 3
    for(var i=k;i<=arr.length;i++){
    res.push(Math.max(...arr.slice(i-k,i)))
    }
    console.log(res)

  • ryanlr

    Find the max in the sliding window. Or often called streaming maximum.

  • charlies 710

    Hi
    with test case nums = {4 2 5 3 4 2 10 2 11 15}, k = 3
    maybe something incorrect

  • Ankit Shah
  • Abhishek Nandgaonkar

    Can someone add a better description for the question

  • Hooman