Дополнить задачу

Задача

Учитывая массив целых чисел nums и целое число target, верните индексы двух чисел так, чтобы они составляли в сумме target.

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

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

#Пример 1:

#Ввод: nums = [2,7,11,15], target = 9
#Вывод: [0,1]
#Объяснение: Поскольку nums[0] + nums[1] == 9, мы возвращаем [0, 1].
#Пример 2:

#Ввод: числа = [3,2,4], цель = 6
#Вывод: [1,2]
#Пример 3:

#Ввод: числа = [3,3], цель = 6
#Вывод: [0,1]

Наброски моего кода

 def twoSum(self, nums, target):
    x = []
    for i in range(len(nums)):
        if nums[i] + nums[i - 1] == target: 
            x.append(nums.index(nums[i-1]))
            x.append(nums.index(nums[i]))
        else: continue
    return x

Проблема

Если вдруг попадаться массив с одинаковыми числами, и в сумме они дают target, то выводит массив с нулями.

Примеры

nums = [3,3]
target = 6
Output [0,0,0,0]

Попытки решить

Я пытался через итерацию

def twoSum(self, nums, target):
x = [i - 1 for i in range(len(nums)) if nums[i] + nums[i - 1] == target]
x = [i for i in range(len(nums)) if nums[i] + nums[i - 1] == target]
return x

Но почему-то получалось, что программа выводит последний правильный индекс.

nums = [3,2,4]
target = 6
Output [2]

Ответы (0 шт):