Skip to content

Commit

Permalink
Reto mouredev#38 - Javascript
Browse files Browse the repository at this point in the history
  • Loading branch information
marcode24 committed Oct 17, 2023
1 parent 6ef9a1b commit 9371452
Showing 1 changed file with 31 additions and 0 deletions.
31 changes: 31 additions & 0 deletions Retos/Reto #38 - LAS SUMAS [Media]/javascript/marcode24.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
/*
* Crea una función que encuentre todas las combinaciones de los números
* de una lista que suman el valor objetivo.
* - La función recibirá una lista de números enteros positivos
* y un valor objetivo.
* - Para obtener las combinaciones sólo se puede usar
* una vez cada elemento de la lista (pero pueden existir
* elementos repetidos en ella).
* - Ejemplo: Lista = [1, 5, 3, 2], Objetivo = 6
* Soluciones: [1, 5] y [1, 3, 2] (ambas combinaciones suman 6)
* (Si no existen combinaciones, retornar una lista vacía)
*/

const getCombinations = ({ values, target }) => {
const combinations = [];
const find = (index, sum, combination) => {
if (sum === target) {
combinations.push(combination);
return;
}
if (sum > target || index >= values.length) {
return;
}
find(index + 1, sum, combination);
find(index + 1, sum + values[index], [...combination, values[index]]);
};
find(0, 0, []);
return combinations;
};

// Visita mi repo en GitHub para ver y correr los tests de este código --> https://github.com/marcode24/weekly-challenges

0 comments on commit 9371452

Please sign in to comment.