贪心算法二维数组找零钱java
时间: 2023-11-19 19:57:39 浏览: 142
找零钱问题的贪心算法.pdf
以下是使用贪心算法解决二维数组找零钱问题的Java代码:
```java
public class CoinChange {
public int coinChange(int[][] coins, int amount) {
int[] dp = new int[amount + 1];
Arrays.fill(dp, amount + 1);
dp[0] = 0;
for (int i = 1; i <= amount; i++) {
for (int[] coin : coins) {
if (i >= coin[0]) {
dp[i] = Math.min(dp[i], dp[i - coin[0]] + coin[1]);
}
}
}
return dp[amount] > amount ? -1 : dp[amount];
}
}
```
其中,coins是一个二维数组,每个元素表示一种硬币的面值和数量。amount表示需要找的零钱总额。该算法的思路是,从小到大枚举需要找的零钱总额,对于每个总额,遍历所有硬币,找到能够凑出该总额的最小硬币数。最后返回凑出总额所需的最小硬币数。
阅读全文