[LeetCode] tow sum

414 查看

初始版本:

def twoSum(self, nums, target):

    dic = dict() //参考1 {}更快一些
    first = 0
    sec = 0
    
    for index in range(0, len(nums)): //参考2 xrange更省内存 xrange在python3中被一冲,用range代替
        num = nums[index]
        
        if dic.has_key(num): //参考3 has_key在python3中被移除
            sec = index + 1
            first = dic[num] + 1
            break
        else:
            key = target - num
            dic[key] = index

    return [first, sec]
  1. literal({}) is faster

  2. range vs. xrange

  3. in vs. has_key

最终版本:

def twoSum(self, nums, target):
    dict = {}
    
    for index in xrange(0, len(nums)):
        
        num = nums[index]
        
        if num in dict:
            return [dict[num] + 1, index + 1]
        else:
            dict[target - num] = index