# 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>
```
• alexwest11

exist whole class of such ones

first/last/min/max neg/pos/zero in array for K size subarray

• alexwest11

idea w/ deque is nice

keep only relevant Maxs , killing Maxs before ( max_prev < max_next), so sorted

and killing front Maxs in deque, if they are out of K positions

• alexwest11

elegant , but obv no need add. memory

= find max for K first
= each next element , update Max if

if curr Max no more w/in k positions, again find max

• 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