AlgoLounge

Sliding Window Maximum

hard

You are given an array of integers 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.

Return the max sliding window.

Examples

Example 1

Input:  nums = [1,3,-1,-3,5,3,6,7], k = 3
Output: [3,3,5,5,6,7]

Window position Max --------------- ----- [1 3 -1] -3 5 3 6 7 3 1 [3 -1 -3] 5 3 6 7 3 1 3 [-1 -3 5] 3 6 7 5 1 3 -1 [-3 5 3] 6 7 5 1 3 -1 -3 [5 3 6] 7 6 1 3 -1 -3 5 [3 6 7] 7

Example 2

Input:  nums = [1], k = 1
Output: [1]

Constraints

  • 1 <= nums.length <= 10⁵
  • -10⁴ <= nums[i] <= 10⁴
  • 1 <= k <= nums.length
TypeScript
Loading editor…
List of test cases (10)
Case 1
nums = [1,3,-1,-3,5,3,6,7]
k = 3
Case 2
nums = [1]
k = 1
Case 3
nums = [1,-1]
k = 1
Case 4
nums = [9,11]
k = 2
Case 5
nums = [4,-2]
k = 2
Case 6
nums = [1,3,1,2,0,5]
k = 3
Case 7
nums = [7,2,4]
k = 2
Case 8
nums = [1,2,3,4,5]
k = 1
Case 9
nums = [5,4,3,2,1]
k = 3
Case 10
nums = [1,1,1,1,1]
k = 2