美文网首页动态规划
最少零钱数问题

最少零钱数问题

作者: BlueSkyBlue | 来源:发表于2018-05-30 22:28 被阅读2次

题目:

给定一串零钱面额和需要找的零钱数。求需要找的零钱数量的最小值。

举例:
零钱面额:1,2,5,21,25
零钱数:63
结果:3(21*3)


思路:

此题可以使用动态规划的思想求解。首先需要明确动态规划的数组的意义,dp[i]代表着当零钱数为i的时候需要找的最小零钱数是多少。其次是状态方程:

dp[i] = Math.min(dp[i], dp[j] + dp[i - j])

Note:j是小于i的任意一个数,该方程的意义是找出当前已知的零钱最少数和未知的零钱最少数谁最小。

首先需要创建一个dp数组初始值设为零,存在于零钱数组中的数设为1。之后动态规划进行查找,查找出给定的零钱数i之前所有零钱的最小值直到最后的i

Note:动态规划的过程中需要判断dp[i]是否为零,如果为零,则将dp[j] + dp[i - j]赋给dp[i]


代码:

/**
     * Find the minimal number of coins.
     * @param coins
     * @param amount
     * @return
     */
    public int solution(int [] coins, int amount){
        if(coins == null || coins.length == 0 || amount == 0)
            return 0;
        int length = amount > coins[coins.length - 1] ? amount : coins[coins.length - 1];
        int [] dp = new int [length + 1];
        for(int i = 0;i<coins.length;i++){
            dp[coins[i]] = 1;
        }
        for(int i=1;i<=amount;i++){
            for(int j=0;j<i;j++){
                if(dp[i] == 0){
                    dp[i] = dp[j] + dp[i-j];
                }else{
                    dp[i] = Math.min(dp[j] + dp[i-j], dp[i]);
                }
            }
        }
        return dp[amount];
    }

相关文章

  • 最少零钱数问题

    题目: 给定一串零钱面额和需要找的零钱数。求需要找的零钱数量的最小值。 举例:零钱面额:1,2,5,21,25零钱...

  • 07-03:动态规划review1

    1、最大连续子数组和 关键核心是累加和的正负: 2、零钱组合 1)最少硬币数 总钱数:总硬币数:动态规划迭代:...

  • 最小硬币找零问题

    最小硬币找零问题是硬币找零问题的一个变种。硬币找零问题是给出要找零的钱数,以及可以用的硬币面额d1...dn及其数...

  • 最少钱币数

    试题名称:最少钱币数问题描述:这是一个古老而又经典的问题。用给定的几种钱币凑成某个钱数,一般而言有多种方式。例如:...

  • 面试官:请你说说微信发红包,有哪些测试点

    功能 1.在红包钱数,和红包个数的输入框中只能输入数字 2.红包里最多和最少可以输入的钱数 200 0.01 3....

  • 最少硬币问题

    描述:假设你有面值为1块、2块、5块的硬币,用尽可能少的硬币凑n块钱。 贪婪算法和动态规划的问题 此题的贪婪算法很...

  • 数钱数钱数钱

    努力奋斗就是为了被人卖了还替别人数钱吗?只有为经历过社会毒打的学生,才仍然相信仅靠努力拼搏就能跻身有产阶级,实现阶...

  • 刷题笔记(经典题目汇总)

    1.硬币找零问题(腾讯q币找零) 解法:贪心策略 只考虑最少需要的硬币总数而不考虑具体的组合对于 1,2,5,10...

  • 测试用例

    微信发红包测试用例: 功能-- 1.在红包钱数,和红包个数的输入框中只能输入数字 2.红包里最多和最少可以输入的钱...

  • 背包系列问题——换零钱

    参考资料:1. 动态规划之背包问题系列 背包问题的定义参见参考资料1跟背包问题不同的是,目标是换的零钱的个数最少。...

网友评论

    本文标题:最少零钱数问题

    本文链接:https://www.haomeiwen.com/subject/untfsftx.html