我正在阅读关于(无界)背包问题的文章,据我所知这是DP中的经典问题。虽然我认为我理解了它的解决方案,但我不清楚如何将其转换为实际代码。例如,在以下递归“公式”中:
M(j) = MAX {M(j-1), MAX i = 1 to n (M(j - Si) + Vi) } for j >=1
我不确定如何将其转换为代码,因为我不清楚内部MAX
是否应该存在,或者它应该被替代为:
M(j) = MAX {M(j-1), M(j - Si) + Vi } for j >=1
请帮助我弄清楚这个公式并编写代码?