Проблема в коде(не знаю как описать)
Здраствуйте, я пытался выполнить 1 задачу там где мы получаем список с чисел и при сложении их должно выйти число равное k, но у меня почему возрощяет пустой список.
Примичание! (числа не должни быть одинаковыми при сложении)
def twoSum(nums, k):
for i in nums:
i += 1
for j in nums:
j = i + 1
if (nums[i] + nums[j]) == k:
return [nums[i], nums[j]]
else:
return []
num = [0, 1, 3, 4]
k = 5
print(twoSum(num, k))
Зарание спасибо!
Ответы (2 шт):
def twoSum(nums, k):
for i in range(len(nums)-1):
for j in range(i+1, len(nums)):
if (nums[i] + nums[j]) == k:
return [nums[i], nums[j]]
return []
Как я правильно понял, задача состоит в проверке на то, есть ли в списке два числа, которые в сумме дают некое число k.
И я так подозреваю, вы хотели перебирать в переменных i и j индексы, но для этого нужно писать не for i in nums, а for i in range(len(nums) - 1):. И зачем вы потом прибавляете единицу не очень понятно. Плюс вы возвращаете пустой список сразу после того, как первая пара не подошла, хотя вы ещё не проверили остальные.
Исправленная версия:
def twoSum(nums, k):
for i in range(len(nums) - 1):
for j in range (i + 1, len(nums)):
if nums[i] + nums[j] == k:
return [nums[i], nums[j]]
return []