leetcode 1の2つの数の和(python 3実装)
4510 ワード
2つの数の和:タイトル:整数配列numsとターゲット値targetを指定します.この配列でターゲット値とターゲット値の2つの整数を見つけて、彼らの配列の下に返してください.
入力ごとに1つの答えしか対応しないと仮定できます.しかし、この配列の同じ要素を繰り返し利用することはできません.
例えばnums=[2,7,11,15],target=9が与えられる
nums[0]+nums[1]=2+7=9なので[0,1]を返します
pythonコード実装:
ポイントは、このような問題の考え方を覚えておくことです.
非辞書法実装
入力ごとに1つの答えしか対応しないと仮定できます.しかし、この配列の同じ要素を繰り返し利用することはできません.
例えばnums=[2,7,11,15],target=9が与えられる
nums[0]+nums[1]=2+7=9なので[0,1]を返します
pythonコード実装:
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
lookup = {}
for i, num in enumerate(nums):
if target - num in lookup:
return [lookup[target-num], i]
else: # num index map
lookup[num] = i
ポイントは、このような問題の考え方を覚えておくことです.
非辞書法実装
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
dic = {}
for i in range(len(nums)):
if target - nums[i] in dic:
return [i,dic[target-nums[i]]]
else:
dic[nums[i]] = i