2つの数値のリートコード合計(Pythonネイティブ)

質問:整数配列numsとターゲット値targetが与えられた場合、合計が配列内のターゲット値である2つの整数を見つけて、それらの配列添え字を返します。

各入力は1つの回答にのみ対応すると想定できます。ただし、配列内の同じ要素を2回使用することはできません。
例:

与えられたnums = [2、7、11、15]、target = 9

nums [0] + nums [1] = 2 + 7 = 9である
ため、[0、1]が返されます。
ここでは、ローカルツールで結果を達成するための2つのソリューションと最初のソリューションを提供します
(リストの使用、判断のループ、より時間がかかる) :

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        x = len(nums)  #获取列表长度,准备循环计算
        for i in range(x):
            j = target-nums[i]
            if j in nums:
                x = nums.index(j)
                if x != i:
                    return i,x

オプション2(参照辞書は時間の複雑さを大幅に軽減します):

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
       dict={
    
    }  #定义一个字典

       for i,element in enumerate(nums):
            if target-element in dict:
               return [dict[target-element],i]
            dict[element] = i  

リートコードの質問をローカルで実行するには、関数の後にパラメーターを調整することに注意する必要があります(図を参照)。
ここに写真の説明を挿入

おすすめ

転載: blog.csdn.net/qq_45701131/article/details/106461911