Pregunta: Dado un número de matriz de enteros y un objetivo de valor objetivo, busque los dos enteros cuya suma sea el valor objetivo en la matriz y devuelva sus subíndices de matriz.
Puede asumir que cada entrada solo corresponderá a una respuesta. Sin embargo, el mismo elemento de la matriz no se puede utilizar dos veces.
Ejemplo:
Números dados = [2, 7, 11, 15], objetivo = 9
Debido a que nums [0] + nums [1] = 2 + 7 = 9,
devuelve [0, 1].
Aquí proporcionamos dos soluciones y la primera solución para lograr el resultado en una herramienta local
(usando una lista, juicio en bucle, más tiempo) :
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
Opción dos (el diccionario de referencia reduce en gran medida la complejidad del tiempo):
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
Para ejecutar las preguntas de leetcode localmente, debe prestar atención a ajustar los parámetros después de la función (como se muestra en la figura)