[LeetCode] 0015. 3Suma

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

Tabla de contenido

Medio

 


Dada una matriz de números enteros, devuelve todos los tripletes [números[i], números[j], números[k]] tal que yo != jyo != 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
				
			
es_ESEspañol