322.零钱兑换

依然是一道动态规划题,对我来说最难的还是找状态转移方程。既然是动态规划,那么肯定要有dp,而第一要搞清楚的就是dp到底是什么,它的下标又代表什么。这里是这样的,dp[n]就代表金额为n时的最小硬币数,那么我们就可以求出从1开始到n的每个状态下的最小硬币数,然后在判断当前的dp[n]到底是保持原来的值,还是给硬币数加1,所以就变成了了加不加硬币,加的话加哪个硬币最好。

具体地代码如下:

322.零钱兑换