Facebook Pixel

Sliding Window Maximum

JavaScript
hard
30 mins

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] Explanation: 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^5 -10^4 <= nums[i] <= 10^4 1 <= k <= nums.length

Function Signature

function maxSlidingWindow(nums, k) { // Your code here }

Test Cases

  • Base cases: nums = [1], k = 1 → [1]
  • Small arrays: nums = [1,2,3], k = 2 → [2,3]
  • Medium arrays: nums = [1,3,-1,-3,5,3,6,7], k = 3 → [3,3,5,5,6,7]
  • Edge cases: nums = [1,2,3,4,5], k = 5 → [5]
  • Large arrays: nums = [1,2,3,...,1000], k = 100 → [100,101,...,1000]

Notes

  • The sliding window moves one position to the right each time
  • Each window contains exactly k elements
  • Need to find the maximum element in each window
  • The output array will have length nums.length - k + 1
  • Optimal solution uses a deque (double-ended queue) for O(n) time complexity

Companies:

google
Atlassian

Solve Similar questions 🔥

Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.