(LeetCode 动态规划(基础版)) 518. 零钱兑换 II (动态规划dp)
题目:518. 零钱兑换 II
思路:动态规划dp,完全0、1背包,时间复杂度0(nm)。
C++版本:
class Solution {
public:int change(int amount, vector<int>& coins) {vector<unsigned> v(amount+10,0);v[0]=1;for(auto x:coins){for(int j=x;j<=amount;j++){v[j]+=v[j-x];}}return v[amount];}
};
JAVA版本:
class Solution {public int change(int amount, int[] coins) {int[] v=new int[amount+10];v[0]=1;for(var x:coins){for(int j=x;j<=amount;j++){v[j]+=v[j-x];}}return v[amount];}
}
Go版本:
func change(amount int, coins []int) int {v:=make([]int,amount+10)v[0]=1for _,x:=range coins {for j:=x;j<=amount;j++ {v[j]+=v[j-x]}}return v[amount]
}