Suma de Leetcode de dos números (nativo de Python)

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)
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_45701131/article/details/106461911
Recomendado
Clasificación