给定一个整数数组 nums
和一个目标值 target
,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
解题思路:(1)将数组中的每两个元素做加法,如果结果相同则保留下标
代码:
nums = [2,7,11,15]
nums_copy = nums
target = 9
for i in nums:
n = nums.index(i)+1
while(n<len(nums)):
if i+nums_copy[n] == target:
print(nums.index(i),n)
n+=1
运行时间太长
(2)Python中的内置函数 itertools 可以实现列表的排列组合
使用链接:https://www.cnblogs.com/aiguiling/p/8594023.html
代码:import itertools
nums = [2,7,11,15]
nums_copy = list(itertools.combinations(nums,2))
target = 9
result = []
lll = []
for i in nums_copy:
if i[0]+i[1]==target:
lll.append(nums.index(i[0]))
lll.append(nums.index(i[1]))
result.append(lll)
print(lll)