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