Даны массив целых чисел arr (могут быть отрицательные) и число target. Найдите непустой полуинтервал индексов [l, r) с суммой target и верните [l, r].
Если подходящих несколько — тот, что заканчивается раньше; из таких — самый короткий. Если нет — верните [].
В работе: Найти период, за который баланс счёта изменился ровно на заданную сумму.
Пример 1
Ввод
arr = [2, -1, 6, 3] target = 8
Вывод
[1, 4]
−1 + 6 + 3 = 8 — индексы с 1 по 3, полуинтервал [1, 4).
Пример 2
Ввод
arr = [1, 2] target = 10
Вывод
[]
Ограничения
- 0 ≤ длина
arr≤ 10⁶ - |сумма| ≤ 10¹⁵
- Лимит — 1 с на тест.
Как вызывается ваш код
Читать ввод и печатать ответ не нужно: мы вызываем функцию на каждом тесте и сравниваем то, что она вернула.
print() и console.log() уходят в консоль.
def subarray_with_sum(arr, target):
Источник: отчёт о Яндексе, 2021. Условие пересказано своими словами.
Давали на собеседовании?
Ответов пока мало — ваш поможет.
Стр. 1Ctrl+Enter — запуск · Ctrl+Shift+Enter — отправка
Ожидаемый ответ не нужен: покажем, что вернула функция.
Здесь появится результат отправки.