各種幣值的硬幣個數充足,如何使用最少的硬幣湊出指定的錢
這個題使用動態規劃解題。當前的狀態只與幣值的種類有關,所以是線性動態規劃
狀態定義:
dp[i] : 湊出i塊錢,所需硬幣的最小個數為dp[i]
狀態轉移方程:
dp[i] = min(dp[i - j], j is the value of coins)
初始狀態:
dp[0] = 0
class solution
vectordp(amount+1, int_max);
dp[0] = 0;
for(int i = 1; i <= amount; i++)
}if(dp[i] != int_max)
dp[i] += 1;
}if(dp[amount] == int_max)
return -1;
return dp[amount];
}};// dp[i] : 湊齊i塊錢,所需的硬幣最小數量為dp[i]
// dp[i] = min(dp[i-j], j is the value of coins) + 1
// dp[0] = 0
leetcode322 零錢兌換
給定不同面額的硬幣 coins 和乙個總金額 amount。編寫乙個函式來計算可以湊成總金額所需的最少的硬幣個數。如果沒有任何一種硬幣組合能組成總金額,返回 1。示例 1 輸入 coins 1,2,5 amount 11輸出 3解釋 11 5 5 1 示例 2 輸入 coins 2 amount 3...
leetcode 322 零錢兌換
給定不同面額的硬幣 coins 和乙個總金額 amount。編寫乙個函式來計算可以湊成總金額所需的最少的硬幣個數。如果沒有任何一種硬幣組合能組成總金額,返回 1。示例 1 輸入 coins 1,2,5 amount 11 輸出 3 解釋 11 5 5 1示例 2 輸入 coins 2 amount ...
LeetCode 322 零錢兌換
322 零錢兌換 題目 給定不同面額的硬幣 coins 和乙個總金額 amount。編寫乙個函式來計算可以湊成總金額所需的最少的硬幣個數。如果沒有任何一種硬幣組合能組成總金額,返回 1。示例 1 輸入 coins 1,2,5 amount 11 輸出 3 解釋 11 5 5 1 示例 2 輸入 co...