给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
使用python3来解决这个问题,第一种思路:
class soulution:
def two_sum(self,nums,target):
n=len(nums)
for i in range(n):
if((target-nums[i]) in nums):
j=nums.index(target-nums[i])
if(i!=j):
return i,j
还有一种,思路和上面稍有不同:
class soulution:
def two_sum(self,nums,target):
n=len(nums)
my_list=[]
for i in range(n):
for j in range(i+1,n):
if(nums[i]+nums[j]==target):
my_list.append((i,j))
return(my_list)
当给定的nums只有一组数据满足情况的话,两个方法的输出结果是一样的,但是当nums = [2, 7, 1, 8, 11, 15],下面的方法可以输出两组数据。