所与の順序付けられた配列は、それらの合計が目標数の和に等しくなるように2つの数値を見つけるために応じて昇順にソートされています。
関数は、インデックス1のINDEX2未満でなければならない2つのインデックス値からindex1のINDEX2を返す必要があります。
説明:
- インデックス(index1と、INDEX2と)の戻り値はゼロではありません。
- あなたは、各入力のみ唯一の答えに対応すると仮定することができますが、同じ要素を再利用することはできません。
例:
入力:番号= 2、7、 11、15]、目標= 9
出力:[1,2]
説明:2および7は、ターゲット番号9の和に等しいです。したがってインデックス1 = 1、INDEX2 = 2。
アイデア:辞書の使用は、辞書内の2つの数値の差が、キー値は、添字の値に対応するか否かを判断します
class Solution:
def twoSum(self, numbers, target):
"""
:type numbers: List[int]
:type target: int
:rtype: List[int]
"""
hashed = {}
for i in range(len(numbers)):
if target-numbers[i] in hashed:
return [hashed[target-numbers[i]], i+1]
hashed[numbers[i]] = i+1