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 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