Вызовы Python: найдите три числа из массива так, чтобы сумма трех чисел была равна нулю
Задачи Python - 1: Упражнение 9 с решением
Напишите программу на Python, чтобы найти три числа из массива так, чтобы сумма трех чисел была равна нулю.
Объяснение:
Пример решения : -
Код Python:
# return a list of lists of length 3
def three_Sum(num):
if len(num)<3: return []
num.sort()
result=[]
for i in range(len(num)-2):
left=i+1
right=len(num)-1
if i!=0 and num[i]==num[i-1]:continue
while left<right:
if num[left]+num[right]==-num[i]:
result.append([num[i],num[left],num[right]])
left=left+1
right=right-1
while num[left]==num[left-1] and left<right:left=left+1
while num[right]==num[right+1] and left<right: right=right-1
elif num[left]+num[right]<-num[i]:
left=left+1
else:
right=right-1
return result
nums1=[-1,0,1,2,-1,-4]
nums2 = [-25,-10,-7,-3,2,4,8,10]
print(three_Sum(nums1))
print(three_Sum(nums2))
Пример вывода:
[[-1, -1, 2], [-1, 0, 1]] [[-10, 2, 8], [-7, -3, 10]]
Блок - схема:
Визуализируйте выполнение кода Python:
Следующий инструмент визуализирует, что компьютер делает шаг за шагом при выполнении указанной программы:
Редактор кода Python:
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите программу на Python, чтобы найти пропущенные числа из списка.
Далее: Напишите программу на Python, чтобы найти три числа из массива так, чтобы сумма трех чисел была равна данному числу.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code