質問:整数配列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
リートコードの質問をローカルで実行するには、関数の後にパラメーターを調整することに注意する必要があります(図を参照)。