Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have
exactly one solution, and you may not use the
same element twice.
Example:
Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1].
方法一
思路:用两个循环,两个index记录位置,判断两个数相加是否等于target,然后返回两个index值
注意点:需要判断两个index是否相同
def twoSum(nums, target): res = [] for i in range(0, len(nums)): for j in range(i, len(nums)): tarSum = nums[i] + nums[j] if tarSum == target and i != j: res.append(i) res.append(j) print('It is %sth and %sth item' % (i, j)) return res
方法二
思路:数组没序,建立一个临时字典,需要一次循环
用target减去第一个值nums[i],判断第二个值是否已经在临时列表中
如果不存在,把列表对应的值作为Key, 当前对应的index 作为Value,存入字典
def twoSum(nums, target): tmp_nums = {} for i in range(len(nums)): j = target - nums[i] if j in tmp_nums: return (tmp_nums[j], i) else: tmp_nums[nums[i]] = i return ('-1)