营业推广的概念,seo关键词排名怎么提升,wordpress 文章跳转,做网站的程序员留备份1.题目描述 2.思路
这里面钱币的数量是无限的。 装满这个背包#xff08;总金额#xff09;要用多少容量#xff08;硬币数量#xff09;。 #xff08;1#xff09;确定dp数组的含义 #xff08;2#xff09;装满容量为j#xff0c;最少的物品为dp[j],要求硬币数量d…1.题目描述 2.思路
这里面钱币的数量是无限的。 装满这个背包总金额要用多少容量硬币数量。 1确定dp数组的含义 2装满容量为j最少的物品为dp[j],要求硬币数量dp[amount] (3)dp[0]0 (4)不管是排列还是组合这道题都是要装满背包。 格式 for物品 for背包-》组合数 for背包for物品-》排列数
3.代码实现
class Solution {public int coinChange(int[] coins, int amount) {int max Integer.MAX_VALUE - 1;int[] dp new int[amount 1];for (int i 1; i amount; i) {dp[i] max;}dp[0] 0;for (int i 1; i amount; i) { // 遍历金额for (int j 0; j coins.length; j) { // 遍历硬币if (coins[j] i dp[i - coins[j]] ! max) {dp[i] Math.min(dp[i], dp[i - coins[j]] 1);}}}return dp[amount] max ? -1 : dp[amount];}
}