Код Senior Скользящее окно обновлено

Кратчайший подмассив с суммой ≥ target

Условие

Все числа положительные. Длина кратчайшего непрерывного подмассива с суммой не меньше target. Нет такого - 0.

Примеры

minSubArrayLen(7, [2, 3, 1, 2, 4, 3]) // 2
minSubArrayLen(11, [1, 1, 1]) // 0
minSubArrayLen(4, [4]) // 1

Как подойти

Окно переменной длины. Работает только на положительных числах: с отрицательными сумма не монотонна и сжатие теряет смысл - там нужны префиксные суммы. Это первый вопрос интервьюера.

Подсказки: 2
  1. Расширяй окно вправо, сжимай влево, пока условие ещё выполняется.
  2. Ответ фиксируется внутри сжатия, а не после него.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.

Термины по теме