[LeetCode] 0039. Suma combinada

Suma combinada

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 serie de distinto números enteros candidatos y un entero objetivo objetivo, devolver una lista de todos combinaciones únicas de candidatos donde los números elegidos suman objetivo. Puedes devolver las combinaciones en cualquier orden.

El mismo El número se puede elegir entre candidatos un número ilimitado de vecesDos combinaciones son únicas si la frecuencia de al menos uno de los números elegidos es diferente.

Los casos de prueba se generan de manera que el número de combinaciones únicas que suman objetivo es menor que 150 combinaciones para la entrada dada.

Ejemplo 1:

Aporte: candidatos = [2,3,6,7], objetivo = 7
Producción: [[2,2,3],[7]]
Explicación:
2 y 3 son candidatos y 2 + 2 + 3 = 7. Tenga en cuenta que 2 se puede usar varias veces. 7 es un candidato y 7 = 7. Estas son las dos únicas combinaciones.

Ejemplo 2:

Aporte: candidatos = [2,3,5], objetivo = 8
Producción: [[2,2,2,2],[2,3,3],[3,5]]

Ejemplo 3:

Aporte: candidatos = [2], objetivo = 1
Producción: []

Restricciones:

  • 1 <= candidatos.longitud <= 30
  • 2 <= candidatos[i] <= 40
  • todos los elementos de candidatos son distinto.
  • 1 <= objetivo <= 40

Pitón

				
					al escribir import Lista clase Solución: def sumacombinación(self, candidatos: Lista[int], destino: int) -> Lista[Lista[int]]: resultado = [] def retroceder(remain: int, comb: Lista[int] , inicio: int): si permanece == 0: resultado.append(lista(comb)) devuelve elif permanece < 0: devuelve para i en rango(inicio, len(candidatos)): comb.append(candidatos[i]) backtrack(permanecer - candidatos[i], comb, i) comb.pop() backtrack(target, [], 0) devolver resultado
				
			
es_ESEspañol