动态规划(5)
来源:互联网 发布:xp 1433端口怎么打开 编辑:程序博客网 时间:2024/06/05 16:03
原题:
/** * Created by gouthamvidyapradhan on 22/03/2017. * You are given coins of different denominations and a total amount of money. Write a function to compute the number of combinations that make up that amount. You may assume that you have infinite number of each kind of coin. * <p> * Note: You can assume that * <p> * 0 <= amount <= 5000 * 1 <= coin <= 5000 * the number of coins is less than 500 * the answer is guaranteed to fit into signed 32-bit integer * Example 1: * <p> * Input: amount = 5, coins = [1, 2, 5] * Output: 4 * Explanation: there are four ways to make up the amount: * 5=5 * 5=2+2+1 * 5=2+1+1+1 * 5=1+1+1+1+1 * Example 2: * <p> * Input: amount = 3, coins = [2] * Output: 0 * Explanation: the amount of 3 cannot be made up just with coins of 2. * Example 3: * <p> * Input: amount = 10, coins = [10] * Output: 1 */
答案:
public class CoinChange2 { /** * Main method * * @param args * @throws Exception */ public static void main(String[] args) throws Exception { int[] coins = {1, 2, 5}; System.out.println(new CoinChange2().change(5, coins)); } public int change(int amount, int[] coins) { int[][] dp = new int[coins.length][amount + 1]; for (int i = 0, l = coins.length; i < l; i++) Arrays.fill(dp[i], -1); return dp(dp, 0, coins, coins.length, amount); } private int dp(int[][] dp, int i, int[] coins, int l, int n) { if (n == 0) return 1; else if (i >= l) return 0; if (n < 0) return 0; if (dp[i][n] != -1) return dp[i][n]; dp[i][n] = dp(dp, i + 1, coins, l, n) + dp(dp, i, coins, l, n - coins[i]); return dp[i][n]; }}
阅读全文
0 0
- 动态规划(5)
- 【动态规划(一)】动态规划基础
- 动态规划(5):状态压缩
- 动态规划练习题-5(吃糖果)
- 动态规划-试题(5)-路灯
- 动态规划5
- 动态规划(1)
- 动态规划(2)
- 动态规划(3)
- 动态规划(4)
- HDOJ2046(动态规划)
- 动态规划(one)
- 动态规划(读书笔记)
- Pearls(动态规划)
- skiing(动态规划)
- HDU4001(动态规划)
- 作业题 (动态规划)
- Zipper(动态规划)
- linux sed 批量替换字符串
- 工具类Utils
- 洛谷 2210 [USACO] Haywire dfs+剪枝
- 如何将oracle date类型的字段,显示为格式 yyyy-mm-dd hh:mm:ss
- DoTween
- 动态规划(5)
- Extjs6.2 打包配置文件(app.json)
- linux环境下源码安装nginx,并搭建PHP 环境
- 设计模式(13)--享元模式
- UITableView 有时不能使用缓存池的情况
- Java, String类型转Date类型的方法
- springMVC常用注解
- JAVA实战:一个桌球小游戏
- 澳大利亚游学指南大全,有哪些安排一看便知