Menu
CoddyTech

Two Sum II: Sorted Input

Дан массив целых чисел numbers, отсортированный в неубывающем порядке, и целое число target. Ровно одна пара разных позиций содержит два значения, сумма которых равна target. Верните эти две позиции в виде индексов с отсчётом от 0, сначала меньший индекс.

Функция

twoSumSorted(numbers: integer-array, target: integer) → integer-array
numbersinteger-array
отсортированный массив целых чисел
targetinteger
сумма двух значений, которой нужно достичь
Возвращаетinteger-array
два индекса с нумерацией от 0 [i, j], где i < j и numbers[i] + numbers[j] == target

Ограничения

  • 2 ≤ numbers.length ≤ 104
  • -5 × 108 ≤ numbers[i] ≤ 5 × 108
  • -109 ≤ target ≤ 109
  • numbers отсортирован по неубыванию.
  • Ровно одна пара индексов i < j удовлетворяет условию numbers[i] + numbers[j] == target.

Примеры

Ввод
numbers = [-4, 1, 3, 8, 12]target = 9
Вывод
[1, 3]
Пояснение
1 находится по индексу 1, а 8 — по индексу 3, и 1 + 8 = 9. Ни одна другая пара не дает в сумме 9: например, -4 + 12 = 8.

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

challenge icon

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

Можешь решить эту задачу за время O(n) и с дополнительной памятью O(1)?

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

Случай 1

Случай 2

Случай 3

Ввод

numbers = [-4, 1, 3, 8, 12]
target = 9

Ожидается

[1, 3]