【LeetCode】1. Two Sum解題報告(Python)
787 ワード
テーマ分析:
この問題は、特定のターゲットに2つの要素を加算し、2つの数値のインデックスを返すことができるかどうかを判断する整数配列を指定します.
コードの説明:
二重ループが思い浮かぶようになり、やはり時間が限界を超えているので、辞書を作って一度ループして問題を解決することができます.numsの中の数字をループして取り出し、target-nums[i]を使うとkeysで成立することが証明され、そうでなければnums[i]を辞書に入れ、数値を下付き、iを辞書の数値とすることに注意します.
テストコード:
この問題は、特定のターゲットに2つの要素を加算し、2つの数値のインデックスを返すことができるかどうかを判断する整数配列を指定します.
コードの説明:
二重ループが思い浮かぶようになり、やはり時間が限界を超えているので、辞書を作って一度ループして問題を解決することができます.numsの中の数字をループして取り出し、target-nums[i]を使うとkeysで成立することが証明され、そうでなければnums[i]を辞書に入れ、数値を下付き、iを辞書の数値とすることに注意します.
テストコード:
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
keys = {}
for i in range(len(nums)):
if target - nums[i] in keys:
return [keys[target - nums[i]], i]
if nums[i] not in keys:
keys[nums[i]] = i
nums = [2,3,5,7,11,15]
target = 9
print(Solution().twoSum(nums, target))#