您的位置:首页 > 其它

9.8---硬币问题(CC150)

2016-01-03 23:00 218 查看
这道题卡了一天。要想AC非常难。

1,第一个解决办法,优化暴力:

public static  int countWays(int n) {
// write code here
int[] coins={1,5,10,25};
int[] dp = new int[100001];
dp[0] = 1;
for(int i = 0;i < 4;++i){
for(int j = coins[i];j <= n;++j){
dp[j] =(dp[j]+dp[j-coins[i]])%1000000007;
}
}
return dp
;
}


View Code
目前的理解是:

如果只有面值1,那么所有值都是1.

如果有两种面值1,5.那么dp[i] = dp[i] + dp[i - 5];从5开始算。

所以。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: