LeetCode問題

jiuyang發表於2018-10-29
1、Two Sum
"""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].

思路:
用dictionary 存期望得到的數{期望數:期望數的index}(期望數= 目標數-當前數)
迴圈list 判斷期望值是否在 dict 如果存在 則 返回對應的key 否則存期望數,接著找

"""

def twoSum(nums, target):
    """
    :type nums: List[int]
    :type target: int
    :rtype: List[int]
    """
    dict_num = {}
    for key, value in enumerate(nums):
        depand = target - value
        if dict_num.__contains__(depand):
            return dict_num.get(depand), key
        dict_num[value] = key


if __name__ == '__main__':
    print(twoSum([2, 7, 11, 15], 9))

 

相關文章