javascript 贪心算法说明

2023-11-08

贪心算法

贪心算法遵循一种近似解决问题的技术,期盼通过每个阶段的局部最优选择(当前最好的解),从而达到全局的最优(全局最优解)。

最少硬币找零问题
最少硬币找零是给出要找零的钱数,以及可以用硬币的额度数量,找出有多少种找零方法。
如:美国面额硬币有:1,5,10,25
我们给36美分的零钱,看能得怎样的结果?

function MinCoinChange(coins){

    var coins = coins;

    var cache = {};

    this.makeChange = function(amount) {
        var change = [],
            total = 0;
        for (var i=coins.length; i>=0; i--){
            var coin = coins[i];
            while (total + coin <= amount) {
                change.push(coin);
                total += coin;
            }
        }
        return change;
    };
}

var minCoinChange = new MinCoinChange([1, 5, 10, 25]);
minCoinChange.makeChange(36);
//一个25, 一个10, 一个1

得到结果是一个25, 一个10, 一个1。贪心得到结果是一个可以接受的解,不一定总是得到最优的解,因为规划上没有考虑到大。

步骤如下图:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

javascript 贪心算法说明 的相关文章

随机推荐

  • 将List中的某一个元素移动到首位或指定位置

    List集合的特点是有序 有下标 可重复的 问题场景 从数据库查询多条数据放到List集合中 但突然想把集合中某一条数据向上移动 放到某一条数据后边 此时你又不能改变从数据库中查询结果的顺序 所以只能对集合进行处理 方法一 使用 Colle
  • How to Control Power Switch Rush Current

    原文链接 https community cadence com cadence blogs 8 b lp posts how to control power switch rush current While there are mul
  • mysql列转行

    原表select from test table 列转行select sheng substring index substring index b shi a help topic id 1 1 as shi from mysql hel
  • C#怎么测试静态方法?我给出了2种方案

    问题 假设有一个方法需要判断当前小时范围 代码如下 public class Class1 public bool SomeMethod var hour DateTime Now Hour if hour gt 9 hour lt 12
  • 遥感影像深度学习样本对制作教程3——从GEE下载训练数据

    关注公众号GeodataAnalysis 回复20230505获取示例数据和代码 这三章的代码都放在一起 上手运行一下代码更容易弄懂 遥感数据多种多样 存储格式各异 处理起来很麻烦 比如很多MODIS数据都是采用HDF格式存储的 在制作深度
  • 模板编程:模板完全特例化

    模板有类模板和函数模板 类模板存在偏特例化 和完全特例化 类模板 类模板完全特例化 类模板偏特化 函数模板只有完全特例化 函数模板完全特特化重点 需要在特例化版本前面加template lt gt 告诉编译器 这个函数是对模板进行特例化 特
  • stm32F1的 PA13/PA14/PA15/PB3/PB4 作为普通引脚使用

    代码链接 https blog csdn net Mark md article details 107411081
  • AS3 通过方法名称 进行调用

    package public class ObjectBinder public var targetInstance public function ObjectBinder targetInstance this targetInsta
  • 运维常用工具

    操作系统 Centos Ubuntu Redhat suse Freebsd 网站服务 nginx apache lighttpd php tomcat resin 数据 库 MySQL MariaDB PostgreSQL DB中间件 m
  • Android Handler被弃用,那么以后怎么使用Handler,或者类似的功能

    Android API30左右 Android应用在使用传统写法使用Handler类的时候会显示删除线 并提示相关的方法已经被弃用 不建议使用 Handler handler new Handler Override public void
  • PyQt5学习记录----案例1实践

    案例1 创建多个用于信息提示的QLabel 要求 1 凡是提示的QLabel控件 都需设置 字体大小 25px 字体颜色 灰色 边框圆角 8px 2 信息提示分多个级别 正常 normal 绿色边框及字体 警告 warning 黄色边框及字
  • 前端技术搭建井字游戏(内含源码)

    The sand accumulates to form a pagoda 写在前面 功能介绍 页面搭建 样式设置 逻辑部分 写在前面 上周我们实通过前端基础实现了飞机大战游戏 今天还是继续按照我们原定的节奏来带领大家完成一个井字游戏游戏
  • QT vector转QVector(来自stackflow)

    std vector
  • el-popover弹出框更新位置刷新定位

    问题背景 当使用el popover弹框提示 又需要同时加载数据时 就会出现位置错位的现象 原因不言而喻 插件先计算了el popover的位置 然后加载数据又改变了el popover的宽高 如下 问题解决 模拟触发元素被点击 this
  • Python接口自动化测试之pytest:(一)参数化执行

    Pytest是非常流行的Python测试框架 适用于单元测试 UI测试 接口测试 一 一个简单的Pytest测试例子 Pytest可以在命令行模式下直接使用命令执行测试脚本 执行Pytest命令后将会自动匹配到以test开头或结尾的文件 并
  • python入门教程之爬虫的概述及简单实践练习

    文章目录 一 我们先了解用户获取网络数据的方式 二 简单了解网页源代码的组成 1 web基本的编程语言 2 使用浏览器查看网页源代码 三 爬虫概述 1 认识爬虫 2 python爬虫 3 爬虫分类 4 爬虫应用 5 爬虫是一把双刃剑 6 p
  • arcgis10.2 SDE (sqlserver)安装及使用

    1 下载 链接地址 http pan baidu com s 1DsMEe 提取密码 3in6 2 安装 3 数据库的安装与配置 数据库的安装不赘述 需要说明白的是 如果是安装多了多个数据库 数据库实例的名字一般是 主机名 实例名 可以通过
  • 与服务器的连接以获取信息,怎么从服务器获取数据库连接

    怎么从服务器获取数据库连接 内容精选 换一换 创建弹性云服务器 请参见 弹性云服务器用户指南 该弹性云服务器用于连接云数据库RDS实例 需要与目标实例处于同一虚拟私有云内 正确配置安全组 使得弹性云服务器可以通过 连接地址 访问云数据库RD
  • dga 分析

    02n 0iy6gn3ozzwmyu 7i43n9qil1g1z2 com0e527eaf 5ec5 4623 9fe9 e459583acd72 com0fmgm1cuu7h1279dghgka0ltg com0gqo9jx0ir0rjy
  • javascript 贪心算法说明

    贪心算法 贪心算法遵循一种近似解决问题的技术 期盼通过每个阶段的局部最优选择 当前最好的解 从而达到全局的最优 全局最优解 最少硬币找零问题 最少硬币找零是给出要找零的钱数 以及可以用硬币的额度数量 找出有多少种找零方法 如 美国面额硬币有