美文网首页
13.2 【动态规划】js解决硬币找零问题

13.2 【动态规划】js解决硬币找零问题

作者: 狩秋之人 | 来源:发表于2019-11-19 13:19 被阅读0次

动态规划与分治法不同之处在于分治法是将整体转变为数个相对独立的子问题,求解后组合

而动态规划则是将整体变为相互关联的子问题,通过整体的思想求解。

还是直接po代码吧

'use strict';

class minChangeQues {
    constructor (coins) {
        this.coins = coins
        this.cache = {}
    }

    changeCoins (amount) {
        // me 为整个class
        let me = this
        if (this.cache[amount]) {
            return this.cache[amount]
        }
        let min = [], newMin, newAmount
        for(let i in this.coins) {
            let coin = this.coins[i]
            newAmount = amount - coin
            if (newAmount >= 0) {
                newMin = me.changeCoins(newAmount)
            }
            if (newAmount >= 0 && (newMin.length || !newAmount)) {
                min = [coin].concat(newMin)
            }
        }
        return (this.cache[amount] = min)
    }
}

let temp = new minChangeQues([1,5,10,25])
console.log(temp.changeCoins());

相关文章

  • 13.2 【动态规划】js解决硬币找零问题

    动态规划与分治法不同之处在于分治法是将整体转变为数个相对独立的子问题,求解后组合 而动态规划则是将整体变为相互关联...

  • 硬币找零问题——动态规划

    问题阐述 给定一些面值的硬币(数量不限)和需要找零的金额,求一个找零所需硬币数最少的方案。现实生活中因其面值的特殊...

  • 动态规划解决找零问题

    问题描述: 有n种币值的货币,收银员要找total的零钱,问找到的最小张数的零钱是多少。例如找13元,币值为5,2...

  • 2019-05-26LeetCode39. 组合总和 可重复提取

    唯一要注意的就是顺序重复,每次往下迭代的时候不是所有数字都为候选集。16min 动态规划解决找零问题使用找零动态规...

  • 最小硬币找零问题

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

  • 函数式编程思想

    换硬币问题 问题就是动态规划里面的换硬币问题。所以函数式编程的关键和动态规划问题一样:递归关系式。换硬币问题发现他...

  • iOS 常遇到的面试算法题

    1、手写代码实现一个冒泡排序? 2、手写代码实现一个选择排序? 3、动态规划,1毛、3毛、5毛硬币找零的问题? 4...

  • 动态规划: 找零问题

    问题描述 现实生活中经常遇到找零钱的问题。假设去超市购物买了一个售价为3毛7分的商品,你给售货员1元(1元 = 1...

  • 硬币问题-动态规划

    问题描述 假设有 1 元,3 元,5 元的硬币若干(无限),现在需要凑出 11 元,问如何组合才能使硬币的数量最少...

  • 浅层理解动态规划及利用动态规划解决最长公共子串等问题

    动态规划基本思想 动态规划的工作原理是先解决子问题,再逐步解决大问题。 用动态规划解决旅游规划问题 目前面对的问题...

网友评论

      本文标题:13.2 【动态规划】js解决硬币找零问题

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