2つの合計問題


Leetcode 2つの合計問題関連
私はBruteforceアプローチだけでなく、最適なアプローチを説明しようとしました.簡単な2つの合計問題解決.あなたがDSAラウンドまたはSDEインタビューのために準備しているならば、これはあなたのためです.あなたが質問をするならば、コメントを残して自由に感じてください.

https://leetcode.com/problems/two-sum/ 問題


整数numsと整数ターゲットの配列が与えられた場合、2つの数値のインデックスを返します.
それぞれの入力が1つの解決策を持っていると仮定することができます.
任意の順序で答えを返すことができます.
Example 1:
Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Explanation: 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]

解決1:[Bruteforce法]
from typing import List
   def twoSum(self, nums: List[int], target: int) -> List[int]:
        for i in range(len(nums)):
            for j in range(i, len(nums)):
                if i!=j:
                    if nums[i] + nums[j] == target:
                        return [i, j]
解決2:[最適解]
from typing import List
 def twoSum(list: List[int], target: int) -> List[int]:
    if len(list) <= 1:
        return 'Please pass an array with atleast two elements'
    hashTable = {}
    for i in range(len(list)):
        complement =  target  - list[i]
        if complement in hashTable:
            return [list.index(complement), i]
        hashTable[list[i]] = list[i]
私は解決策を説明するビデオを作成しました.