python 3的解决方案是什么?
给定一个整数数组,返回两个数字的索引,使它们相加为特定目标。您可以假设每个输入都只有一个解决方案,并且您不能两次使用相同的元素。
例子:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].
Run Code Online (Sandbox Code Playgroud)
该函数迭代列表中的所有数字并计算与其他数字的总和。如果总和等于目标,则返回索引
def indices_sum(nums,target):
for i in range(len(nums)):
for j in range(i+1,len(nums)):
if nums[i]+nums[j] == target: return(i,j)
Run Code Online (Sandbox Code Playgroud)
useitertools.combinations将列表中的元素组合成非重复的对,并检查总和是否匹配。如果是,则打印术语的位置:
import itertools
integer_array = [2, 8, 4, 7, 9, 5, 1]
target = 10
for numbers in itertools.combinations(integer_array,2):
if sum(numbers) == target:
print([integer_array.index(number) for number in numbers])
Run Code Online (Sandbox Code Playgroud)