leetcode python 1.Two Sum

 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

 

posted @ 2018-03-03 19:03  TomoFan  阅读(116)  评论(0编辑  收藏  举报