Two Sum(python)
阿新 • • 發佈:2018-12-14
題目:Two Sum
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].
第一步:用 zip 函式做一個字典,將nums中數字與index聯絡起來:
In [33]: dictionary = dict(zip(nums, list(range(0, len(nums)))))
In [34]: dictionary
Out[34]: {2: 0, 7: 1, 11: 2, 15: 3}
第二步:迴圈將 target 減去 nums 中的 value, 得到一個subvalue, 如果這個subvalue在字典裡面, 就返回 value和subvalue的 index
完整程式如下:
calss Solution(): def twosum(nums, target): dictionary = dict(zip(nums, list(range(0, len(nums))))) for index, value in enumerate(num): subvalue = target - value if sub in dic: return [index, dictionary[subvalue]] else: continue
也可迴圈生成字典,此種解法如下:
class Solution(object): def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ dic = dict() for index,value in enumerate(nums): sub = target - value if sub in dic: return [dic[sub],index] else: dic[value] = index #此處迴圈生成字典,效果和我上面程式的dictionary一樣 作者:石曉文的學習日記 連結:https://www.jianshu.com/p/b71fc7307e42 來源:簡書 簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。