Условие

Дан массив целых чисел nums, имеется скользящее окно размера k, которое движется с самого левого края массива в самый правый. Вы можете видеть только k чисел в окне. Каждый раз, когда скользящее окно движется вправо на одну позицию, нужно вернуть максимальное значение в текущем окне.

Напишем функцию max_sliding_window(nums: List[int], k: int) -> List[int], которая принимает массив целых чисел nums и размер скользящего окна k, и возвращает список максимальных значений для каждого окна, двигающегося на одну позицию вправо.

Примеры

Пример 1

nums = [1,3,-1,-3,5,3,6,7]
k = 3
max_sliding_window(nums, k)

Output:

[3, 3, 5, 5, 6, 7]

Пример 2

nums = [1]
k = 1
max_sliding_window(nums, k)

Output:

[1]

Пример 3

nums = [1,-1]
k = 1
max_sliding_window(nums, k)

Output:

[1, -1]

Пример 4

nums = [9,11]
k = 2
max_sliding_window(nums, k)

Output:

[11]