Код Senior Скользящее окно обновлено
Кратчайший подмассив с суммой ≥ target
Условие
Все числа положительные. Длина кратчайшего непрерывного подмассива с суммой не меньше target. Нет такого - 0.
Примеры
minSubArrayLen(7, [2, 3, 1, 2, 4, 3]) // 2
minSubArrayLen(11, [1, 1, 1]) // 0
minSubArrayLen(4, [4]) // 1
Как подойти
Окно переменной длины. Работает только на положительных числах: с отрицательными сумма не монотонна и сжатие теряет смысл - там нужны префиксные суммы. Это первый вопрос интервьюера.
Подсказки: 2
- Расширяй окно вправо, сжимай влево, пока условие ещё выполняется.
- Ответ фиксируется внутри сжатия, а не после него.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Термины по теме
Ещё по теме «Скользящее окно»
- Самая длинная серия единиц с k заменами
- Перестановка как подстрока
- Самая длинная серия после k замен
- Самая длинная подстрока без повторов
- Максимальная сумма окна длины k
- Самая длинная подстрока без повторов: где начинается
- Лучшие k дней подряд по выручке
- Минимальное окно, содержащее все символы шаблона