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 🔥
Want to upskill? Explore our courses!
Namaste DSA
Master DSA from scratch with numerous problems, and expert guidance.
Namaste React
Wanna dive deep into React and become Frontend Expert? Learn with me now!
Namaste Frontend System Design
The most comprehensive and detailed course for frontend system design.
Namaste Node.js
Wanna dive deep into Node.js? Enroll into `Namaste Node.js` now!
