1. 程式人生 > >leetcode-518 硬幣組合種類數

leetcode-518 硬幣組合種類數

·狀態轉移方程dp[i]=\tiny \sumdp[i-coins[j]]

·和之前leetcode-322 硬幣找零問題不同,這裡是以coins為外層迴圈

int change(int amount, vector<int>& coins) {
	int *dp=new int[amount+1];

	for(int i=0;i<amount+1;i++){
		dp[i]=0;
	}

	dp[0]=1;
	for(int j=0;j<coins.size();j++){
		for(int i=1;i<=amount;i++){
			if(i>=coins[j]){
				dp[i]=dp[i]+dp[i-coins[j]];
			}
		}
	}
	return dp[amount];
}