Sliding window maximum
Your task
Given a stream of integers nums and a window size w, return the list of maximums of every contiguous window of length w as the window slides one step at a time from left to right. If w is greater than len(nums), return an empty list. If w <= 0, also return an empty list. Solve it in O(n) using a monotonic deque rather than recomputing each window's max.
Examples
sliding_window_max(nums: list[int], w: int) -> list[int]Example 1
Input
sliding_window_max([1, 3, -1, -3, 5, 3, 6, 7], 3)Output
[3, 3, 5, 5, 6, 7]