动态规划-零钱兑换-leetcode518

Posted 当有一星

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态规划-零钱兑换-leetcode518相关的知识,希望对你有一定的参考价值。

题目来源:

https://leetcode-cn.com/problems/coin-change-2/




问题描述:




动态规划-零钱兑换-leetcode518



解题思路:

  1. 三种硬币[1,2,5]凑成10元钱,可以理解成两种硬币[1,2]和0个5元凑成10元,或者两种硬币[1,2]和1个5元凑成10元,或者两种硬币[1,2]和2个5元凑成10元。也就是用[1,2]凑成0,5,10元。

  2. 二维数组dp[i][j]表示,i个币种凑成j元的方法数。比如dp[0][0]=1,dp[0][...]=0

  3. 用数学归纳的思想,第i行j列的方法数可以由i-1行和j-k*coins[i-1]列的方法数相加

    这里的k要取到j/coins[i-1]的商

  4. 用动态规划foriforjfork,计算dp数组每一个位置的方法数,题目所求即为数组最右下方的方法数,即dp[-1][-1]






python代码:

以上是关于动态规划-零钱兑换-leetcode518的主要内容,如果未能解决你的问题,请参考以下文章

leetcode经典动态规划题目:518零钱兑换

动态规划第九篇:零钱兑换

动态规划第九篇:零钱兑换

518. 零钱兑换 II -- LeetCode -- 6.10

leetcode 518. 零钱兑换 II-----完全背包套路模板

Leetcode.322-零钱兑换(动态规划)