2. Two Sum
873 ワード
質問する
与えられた整数配列numsと整数targetについて、加算によってtargetを作成できる配列の2つのインデックスを返します.
正確には、同じ要素を2回使わなくてもいい答えがあります.
Example 1:
Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Output: Because nums[0] + nums[1] == 9, we return [0, 1].
Example 2:
Input: nums = [3,2,4], target = 6
Output: [1,2]
Example 3:
Input: nums = [3,3], target = 6
Output: [0,1]
に答える
もちろん考えられる解決策は暴力です.しかし、このようにしてタイムアウトが発生します.
問題には明らかに答えがあるので、現在の数字の残りの候補として使用できる辞書を使用して値を検索できます.
以下にPythonとして実装する.
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
nums_dict = {}
for idx, num in enumerate(nums):
#現在の数値numの残りの計算
complement = target - num
#残りがdictionaryの場合。
if complement in nums_dict:
return [idx, nums_dict[complement]]
#現在の数値をキーとしてindexをvalueに設定します(現在の値は将来の残りの値になります)。
nums_dict[num] = idx
Reference
この問題について(2. Two Sum), 我々は、より多くの情報をここで見つけました
https://velog.io/@clould_container/2.-Two-Sum
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
もちろん考えられる解決策は暴力です.しかし、このようにしてタイムアウトが発生します.
問題には明らかに答えがあるので、現在の数字の残りの候補として使用できる辞書を使用して値を検索できます.
以下にPythonとして実装する.
class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: nums_dict = {} for idx, num in enumerate(nums): #現在の数値numの残りの計算 complement = target - num #残りがdictionaryの場合。 if complement in nums_dict: return [idx, nums_dict[complement]] #現在の数値をキーとしてindexをvalueに設定します(現在の値は将来の残りの値になります)。 nums_dict[num] = idx
Reference
この問題について(2. Two Sum), 我々は、より多くの情報をここで見つけました https://velog.io/@clould_container/2.-Two-Sumテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol