lit vid. You must Work really hard! Also, Lets Be Friends :-3
@carrotfeiwang65984 жыл бұрын
条例不清,浪费时间
@magiciendecode91224 жыл бұрын
确实,应该在5分钟内把这题说完的,讲的太细。
@yanhaizhongyu4 жыл бұрын
你这个解法是错误的。 计算了太多的重复。 有很多重复。 例如输入为 30 {25,10,5} 正确的解法结果 5: {25,5}, {10,10,10},{10,10,5,5},{10,5,5,5,5}{5,5,5,5,5,5}你的算法算出来的答案是15, 我另外一种算法跟你这个有同样的问题: int changeCoinshHasDup(int coins[], int m, int V) { // base case if (V == 0) return 0; int* dp = new int[V]{1}; for (int i = 1; i <= V; i++) { int sum = 0; for (int j = 0; j < m; j++) { // printf("coins[%d]=%d ", j, coins[j]); if (i >= coins[j]) { sum += dp[i-coins[j]]; } } dp[i] = sum; printf("dp[%d]=%d ", i, dp[i]); } return dp[V]; }