-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
25 lines (21 loc) · 918 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function getMaxGifts(giftsCities, maxGifts, maxCities) {
// caso base: si hemos excedido el número máximo de ciudades o regalos, devolver 0
if (maxCities <= 0 || maxGifts <= 0) {
return 0;
}
// mantener un registro del número máximo de regalos que se pueden entregar
let maxTotal = 0;
// intentar entregar regalos en cada ciudad
for (let i = 0; i < giftsCities.length; i++) {
// si se pueden entregar los regalos en la ciudad actual
if (giftsCities[i] <= maxGifts) {
// entregar los regalos y pasar a la siguiente ciudad
let total = getMaxGifts(giftsCities.slice(i + 1), maxGifts - giftsCities[i], maxCities - 1);
// añadir el número de regalos entregados en la ciudad actual al total
total += giftsCities[i];
// actualizar el número máximo de regalos que se pueden entregar
maxTotal = Math.max(maxTotal, total);
}
}
return maxTotal;
}