LeetCode_One question per day_python_ La suma de dos números para la primera pregunta

Python escribe un problema de algoritmo todos los días

primer día

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.

 

Fuente: LeetCode
Enlace: https://leetcode-cn.com/problems/two-sum

1. Algoritmo de fuerza bruta 

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        for i in range(0, len(nums)):
            for j in range(i + 1, len(nums)):
                if nums[i] + nums[j] == target:
                    return [i, j]
        return[]

2. Utilice el diccionario para simular una solución hash

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        hashmap = {}
        for ind, num in enumerate(nums):
            hashmap[num] = ind
            #   hashmap = {(2,0),(7,1),(11,2),(15,3)}
        for i, num in enumerate(nums):
             j = hashmap.get(target - num)
            #   j : 2 7 None None
             if j is not None and i != j:
                return [i, j]

 

Supongo que te gusta

Origin blog.csdn.net/qq_42548880/article/details/108355177
Recomendado
Clasificación