提交 0052e3fa 编写于 作者: L luzhipeng

fix: 修正硬币找零

上级 c1fb14e6
......@@ -21,9 +21,8 @@ You may assume that you have an infinite number of each kind of coin.
```
## 思路
可以用动态规划来写, 可以先画一个二维表,然后观察,其是否可以用一维表代替。
也可以暴力分析,我们把coin逆序排列,然后逐个取,取到刚好不大于amout,依次类推。
假如我们把coin逆序排列,然后逐个取,取到刚好不大于amout,依次类推。
```
eg: 对于 [1,2,5] 组成 11 块
......@@ -46,6 +45,16 @@ eg: 对于 [1,2,5] 组成 11 块
因此结果是 3
```
熟悉贪心算法的同学应该已经注意到了,这就是贪心算法,贪心算法更amount尽快地变得更小。
`经验表明,贪心策略是正确的`。 注意,我说的是经验表明, 贪心算法也有可能出错。 就拿这道题目来说,
他也是不正确的! 比如 `coins = [1, 5, 11] amout = 11`, 因此这种做法有时候不靠谱,我们还是采用靠谱的做法.
如果我们暴力求解,对于所有的组合都计算一遍,然后比较, 那么这样的复杂度是 2 的 n 次方(这个可以通过数学公式证明,这里不想啰嗦了),
这个是不可以接受的。那么我们是否可以动态规划解决呢?答案是可以,原因就是可以划分为子问题,子问题可以推导出原问题
对于动态规划我们可以先画一个二维表,然后观察,其是否可以用一维表代替。
关于动态规划为什么要画表,我已经在[这篇文章](../thinkings/dynamic-programming.md)解释了
## 关键点解析
- 动态规划
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册