Estoy tratando de aprender y practicar la estructura de datos y estoy practicando la programación dinámica, y estoy atascado en un problema. No sé si es mi falacia lógica o algo así.
mi enunciado del problema es:
para un número N dado del balde con L[i] pintas de líquido en él y hay un barril de C pintas de capacidad, tenemos que encontrar la mayor cantidad de líquido que el barril puede sacar de ese balde si el barril no se desborda .
Este es mi código:
let V1 = [2, 3, 4, 2]; let barrel = 100; const cache = []; for(let i=0; i<=barrel; i++){ cache[i] = []; for(let j=0; j<=V1.length; j++){ cache[i][j] = 0; } } function findMaxDP(V1) { let i, j; let V = [0, ...V1]; for(i=0; i<=barrel; i++){ for(j=0; j<V.length; j++){ if(i==0){ cache[0][j] = 0; } if(j==0){ cache[i][0] = 0; } else{ if(i == V[j]){ cache[i][j] = V[j]; } if((i-cache[i][j-1]) <= V[j]){ cache[i][j] = cache[i][j-1] + V[j]; } if((i-cache[i][j-1]) != V[j]){ cache[i][j] = cache[i][j-1]; } } } } return cache[barrel-1][j-1] } console.log(findMaxDP(V1));Estoy obteniendo cero, cualquier tipo de ayuda sería apreciada.
Gracias