动态规划之最少硬币找零问题
2017-12-14 20:15
417 查看
假设有几种硬币,并且数量无限。请找出能够组成某个数目的找零所使用最少的硬币数。
http://www.edufyme.com/code/?id=33e75ff09dd601bbe69f351039152189
private static final int MAX_VALUE = Integer.MAX_VALUE - 2; public static int coinChange(int[] coins, int change) { int[] seq = new int[change + 1]; int[] sum = new int[change + 1]; for (int i = 1; i <= change; i++) { sum[i] = MAX_VALUE; } sum[0] = 0; for (int i = 1; i < change + 1; i++) { for (int j = 0; j < coins.length; j++) { if (i >= coins[j] && (1 + sum[i - coins[j]]) < sum[i]) { sum[i] = 1 + sum[i - coins[j]]; seq[i] = j; } } } int j = change; while (j > 0) { System.out.print(coins[seq[j]] + "\t"); j = j - coins[seq[j]]; } System.out.println(); return sum[change]; } public static void main(String[] args) { Scanner in = new Scanner(System.in); int[] coins = {2, 3, 4}; System.out.println(String.format("coins is %s", Arrays.toString(coins))); while (in.hasNext()) { int change = in.nextInt(); if (change == 0) { break; } int coinNumber = coinChange(coins, change); System.out.println(coinNumber == MAX_VALUE ? 0 : coinNumber); } }
http://www.edufyme.com/code/?id=33e75ff09dd601bbe69f351039152189
相关文章推荐
- 最少硬币找零问题-动态规划
- 最少硬币找零问题-动态规划
- 动态规划-最少硬币组合问题
- 最少硬币问题(动态规划解决)
- 硬币找零问题_动态规划_算法与数据结构
- 最少硬币问题 动态规划
- 动态规划:最少硬币找零问题、01背包问题、完全背包问题
- JAVA动态规划(一)--最少硬币找零问题
- 算法_动态规划_最少硬币问题
- 动态规划求解硬币找零问题——Java实现
- 【动态规划】之硬币找零问题(难度:1星)
- 动态规划求解最多有几种方案求解硬币找零问题
- 零钱找零问题 总结 (最少的硬币数 ,所有组合数)
- 最少硬币问题 动态规划
- 动态规划入门之硬币找零问题
- 硬币找零问题(动态规划求解)
- 硬币找零问题 - 动态规划
- 最少硬币找零问题
- 硬币找零问题(动态规划)
- 最少硬币找零问题