Menu
CoddyTech

Minimum Size Subarray Sum

Даны положительное целое число target и массив nums положительных целых чисел. Найдите самый короткий подмассив (непрерывную последовательность соседних элементов), сумма которого не меньше target, и верните его длину. Если ни один подмассив не достигает значения target, верните 0.

Функция

minSubArrayLen(target: integer, nums: integer-array) → integer
targetinteger
сумма, которой подмассив должен достичь или превысить
numsinteger-array
массив положительных целых чисел
Возвращаетinteger
длина самого короткого подмассива, сумма которого не меньше целевого значения, или 0, если такого нет

Ограничения

  • 1 ≤ target ≤ 109
  • 1 ≤ nums.length ≤ 2 × 104
  • 1 ≤ nums[i] ≤ 104

Примеры

Ввод
target = 15nums = [4, 2, 9, 3, 7, 1, 5]
Вывод
3
Пояснение
Ни одна пара соседних чисел не достигает 15: самая большая сумма двух соседних чисел — 9 + 3 = 12. Три числа достигают: 4 + 2 + 9 = 15 и 9 + 3 + 7 = 19, поэтому ответ — 3.

lock icon+16 скрытых тестов при отправке

challenge icon

Дополнительный вопрос

Как бы ты решил эту задачу, если бы nums мог также содержать нули и отрицательные числа, при которых скользящее окно больше не работает?

Сбросить код
def minSubArrayLen(target, nums):
    # Напишите код здесь
Тестовые случаи

Случай 1

Случай 2

Случай 3

Ввод

target = 15
nums = [4, 2, 9, 3, 7, 1, 5]

Ожидается

3