一开始觉得这是一道背包问题,于是就把之前的背包问题,拿出来复习了一遍,发现代码还是没写出来。后来就去看别人的解答了,发现都是用了一维动态规划,自己半天理解不来。总之后面,硬生生是把背包问题的模板套到这道题上面了,值得注意的是,它的初始化不同。这也是我一开始弄错的地方。首先定义dp[i][j]表示前i种硬币凑出总金额为j的所需要的最少硬币的个数。对于dp[...][0]也就是对于任何硬币凑出总金额为0的可能性为0。而dp[0][...]表示没有硬币凑出某个金额,这是不可能的。
而另外一种一维的动态规划法,其实就是降维。



网友评论