161 - 322 零钱兑换
Last updated
Was this helpful?
Last updated
Was this helpful?
给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。
示例 1:
输入: coins = [1, 2, 5], amount = 11 输出: 3 解释: 11 = 5 + 5 + 1
示例 2:
输入: coins = [2], amount = 3 输出: -1
说明: 你可以认为每种硬币的数量是无限的。
感觉可以排序后从大到小减
大佬的套路太牛批了!!
总结一下:
动态规划算法是从暴力解优化而来的
优化就是用空间换时间。提高效率就是少做事
还可以自底向上,从一开始慢慢往后推延,就成了动态规划
Runtime: 8 ms, faster than 90.91% of Go online submissions for Coin Change.
Memory Usage: 5.9 MB, less than 100.00% of Go online submissions for Coin Change.
Runtime: 1392 ms, faster than 53.04% of Python3 online submissions for Coin Change.
Memory Usage: 12.7 MB, less than 100.00% of Python3 online submissions for Coin Change.
Runtime: 108 ms, faster than 49.29% of JavaScript online submissions for Coin Change.
Memory Usage: 41.2 MB, less than 9.09% of JavaScript online submissions for Coin Change.