1 class Solution(object):
2 def twoSum(self, nums, target):
3 """
4 :type nums: List[int]
5 :type target: int
6 :rtype: List[int]
7 """
8 d = {}# 新建一个字典存放 key为nums中的值 value为nums中值对应的序号
9 size = 0
10 while size < len(nums):
11 if not nums[size] in d:
12 d[nums[size]] = size #遍历nums 向字典里传键值对
13 if target - nums[size] in d: #target减去目前遍历到的这个值,其结果也在字典的key中(即nums中的值)
14 if d[target-nums[size]] !=size: # 必须是字典中的value(即nums中值的序号)不相同 如:nums = [2,3,5] target = 6, 不做这个判断会输出[1,1]
15 ans = [d[target - nums[size]] , size]
16 return ans
17 size = size + 1