Explore diversas soluciones LeetCode en Python, C++, JavaScript, SQL y TypeScript. Ideal para preparación de entrevistas, aprendizaje y práctica de código en múltiples lenguajes de programación. Enlace de repositorio de Github
Dada una matriz de números enteros, devuelve todos los tripletes [números[i], números[j], números[k]]
tal que yo != j
, yo != k
, y j != k
, y números[i] + números[j] + números[k] == 0
.
Observe que el conjunto de soluciones no debe contener tripletes duplicados.
Ejemplo 1:
Aporte: números = [-1,0,1,2,-1,-4] Producción: [[-1,-1,2],[-1,0,1]] Explicación: números[0] + números[1] + números[2] = (-1) + 0 + 1 = 0. números[1] + números[2] + números[4] = 0 + 1 + (-1) = 0. nums[0] + nums[3] + nums[4] = (-1) + 2 + (-1) = 0. Los tripletes distintos son [-1,0,1] y [-1,-1 ,2]. Observe que el orden de la salida y el orden de los tripletes no importan.
Ejemplo 2:
Aporte: números = [0,1,1] Producción: [] Explicación: El único triplete posible no suma 0.
Ejemplo 3:
Aporte: números = [0,0,0] Producción: [[0,0,0]] Explicación: El único triplete posible suma 0.
Restricciones:
3 <= números.longitud <= 3000
-10 5 <= números[i] <= 10 5
Pitón
clase Solución: def twoSum(self, nums: Lista[int], i: int, resultado: Lista[List[int]]): bajo = i + 1 alto = len(nums) - 1 mientras (bajo < alto): suma = números[i] + números[bajo] + números[alto] si suma < 0: bajo += 1 elif suma > 0: alto -= 1 else: resultado.append([nums[i], números[bajo] , nums[hight]]) low += 1 hight -= 1 while low < hight and nums[low] == nums[low - 1]: low += 1 def threeSum(self, nums: List[int]) - > Lista[Lista[int]]: resultado = [] nums.sort() para i, elemento en enumerar(nums): si elemento > 0: romper si elemento!= nums[i-1] o i == 0: self.twoSum(nums, i, resultado) devuelve resultado