NO.08.11 硬币 中等
和LeetCode第NO.322 零钱兑换类似的题目。
思路一:动态规划
dp[i]含义:i分有几种表示法。
初始化:dp数组大小n+1,包含0分的情况;dp[0]=1,0分只能一种表示法。
状态转移:dp[i]=dp[i]+dp[i-coin]
,依次取出每个面额的硬币,如果存在[面额i-取出硬币的面额]的子问题,则将子问题的表示法种数加上。
1 | public int waysToChange(int n) { |
时间复杂度:O(n*4) = O(n)
本人菜鸟,有错误请告知,感激不尽!
更多题解和源码:github