Условие

Дан массив целых чисел nums и целое число target. Необходимо вернуть индексы двух чисел из массива nums, сумма которых равна target.

Вы можете предположить, что каждый входной массив имеет только одно решение, и вы не можете использовать один и тот же элемент дважды.

Вы можете вернуть ответ в любом порядке.

Примеры

Пример 1:

Входные данные: nums = [2, 7, 11, 15], target = 9
Выходные данные: [0, 1]
Объяснение: nums[0] + nums[1] = 2 + 7 = 9, вернуть [0, 1] как индексы этих чисел.

Пример 2:

Входные данные: nums = [3, 2, 4], target = 6
Выходные данные: [1, 2]
Объяснение: nums[1] + nums[2] = 2 + 4 = 6, вернуть [1, 2] как индексы этих чисел.

Пример 3:

Входные данные: nums = [3, 3], target = 6
Выходные данные: [0, 1]
Объяснение: nums[0] + nums[1] = 3 + 3 = 6, вернуть [0, 1] как индексы этих чисел.

Решение

  1. Создайте пустой словарь dict.
  2. Пройдитесь по всем элементам nums с помощью цикла.
  3. Для каждого элемента nums[i], проверьте, содержится ли target - nums[i] в словаре. Если да, то это означает, что мы нашли два числа, сумма которых равна target, верните их индексы [i, dict[target - nums[i]]].
  4. Если target - nums[i] не содержится в словаре, добавьте nums[i] как ключ и i как значение в словарь.
  5. Если цикл закончился и ни одна пара чисел не была найдена, верните None.

Пример с объяснением

Предположим, у нас есть массив nums = [2, 7, 11, 15] и target = 9.

  1. Создаем пустой словарь dict.