我用Java语言写了一个贪心算法小案例

贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法。贪心算法在有最优子结构的问题中尤为有效。最优子结构的意思是局部最优解能决定全局最优解。

下面是一个使用Java实现的贪心算法示例,该算法解决了找零问题。给定一组硬币面值和一个总金额,我们需要找到最少的硬币数量来凑成这个总金额。

import java.util.Arrays;public class GreedyAlgorithm {public static void main(String[] args) {int[] coins = {1, 2, 5, 10, 20, 50, 100};int amount = 93;System.out.println("Minimum number of coins required: " + findMinCoins(coins, amount));}public static int findMinCoins(int[] coins, int amount) {Arrays.sort(coins); // 对硬币面值进行排序int count = 0;for (int i = coins.length - 1; i >= 0; i--) {while (amount >= coins[i]) {amount -= coins[i];count++;}}return count;}
}

在这个例子中,我们首先对硬币面值进行排序,然后从最大的硬币面值开始,尽可能多地使用该硬币,直到无法继续使用为止。然后我们继续尝试下一个较小的硬币面值,以此类推,直到凑齐总金额。最后返回使用的硬币数量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/659305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode765. Couples Holding Hands——并查集

文章目录 一、题目二、题解 一、题目 There are n couples sitting in 2n seats arranged in a row and want to hold hands. The people and seats are represented by an integer array row where row[i] is the ID of the person sitting in the ith seat. The couples ar…

springboot141夕阳红公寓管理系统的设计与实现

基于Spring Boot的夕阳红公寓管理系统的设计与实现 摘 要 如今社会上各行各业,都在用属于自己专用的软件来进行工作,互联网发展到这个时候,人们已经发现离不开了互联网。互联网的发展,离不开一些新的技术,而新技术的…

Lua脚本

1.准备 1.简介 1.Lua是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放 2.目标 1.其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能 3.特点 1.轻量级:用标准C语言编写并以源代码形式开放,编译后…

【Qt】—— Qt Creator界⾯认识

目录 (一)左边栏 (二)代码编辑区 (三)UI设计界⾯ (四)构建区 (一)左边栏 在编辑模式下,左边竖排的两个窗⼝叫做"边栏"。 ①是项⽬…

动手实践WebVR 全景

前言 近年来VR概念越来越火,相信大家在网上都有过VR的浏览体验,比如VR全景看房[1]、VR全景看车[2]、VR全景旅游[3]等等,VR全景给了我们视觉上的沉浸式体验。本文将会简单探究Web VR全景的实现原理,同时也会用threejs实现两个小的…

鸿蒙:配置事件

事件方法以“.”链式调用的方式配置系统组件支持的事件,建议每个事件方法单独写一行。 (1)使用箭头函数配置组件的事件方法。 Button(Click me).onClick(() > {this.myText ArkUI;}) (2)使用匿名函数表达式配置…

Linux文本三剑客-sed

一、sed介绍: sed(Stream Editor)是一种流编辑器,用于对文本进行处理和转换。它可以从输入流中读取文本,并根据指定的规则进行编辑和替换。sed通常用于在命令行中进行文本处理,可以实现搜索、替换、删除、…

Vmware 无法开启虚拟化解决方法

最近遇到了Vmware无法开启虚拟化的问题,已经解决,记录一下解决经过。 我遇到的情况是BIOS已经开启虚拟化,HV服务也停用了,但是Vmware仍然提示模块“VPMC”启动失败。网上的解决方案千篇一律,基本都是排查BIOS、停用Windows的虚拟化功能、停用HV主机服务、Vmware配置中关闭…

【开源】SpringBoot框架开发天然气工程运维系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统角色分类2.2 核心功能2.2.1 流程 12.2.2 流程 22.3 各角色功能2.3.1 系统管理员功能2.3.2 用户服务部功能2.3.3 分公司(施工单位)功能2.3.3.1 技术员角色功能2.3.3.2 材料员角色功能 2.3.4 安…

如何快速将 HTML 文件转换为 PDF

HTML表格是一种在网页上显示数据的通用且强大的方式。它们可用于创建简单的表(例如日历)或更复杂的表(例如数据网格)。在这篇博文中,我们将逐步学习如何在 C# 中创建 HTML 表格。本指南将为您提供在 C# 中有效创建 HTM…

阿里云服务器一键部署幻兽帕鲁专属服务器,图形化可视化修改游戏参数是如此简单!

幻兽帕鲁这款游戏最近很火,在线玩家太多了,官方服务器也是承压巨大,很多玩家现在都是搭建自己的专属幻兽帕鲁服务器来玩。搭建教程现在也是越来越简单了,可以说是真正的零基础,一看就会,并且开箱即玩&#…

c# 中Bitmap, byte[] ,Stream 文件相互转换(兼容.netCore)

c# 中Bitmap, byte[] ,Stream 文件相互转换(兼容.netCore) 代码如下: using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Linq

【python】在python中使用单元测试unittest

在python中使用单元测试unittest 大家好,欢迎来到我的技术乐园!今天,我们将一起踏入Python单元测试的奇妙旅程,探索这个让我们的代码更可靠、更强壮的令人愉快的世界。 前言:为什么单元测试如此重要? 在我…

深度学习的数据集制作、标注、处理相关软件

制作深度学习数据集通常涉及数据的采集、标注和预处理等步骤。以下是一些可用于制作和处理深度学习数据集的软件工具,以及它们的详细介绍: 数据采集和生成 Web爬虫工具 (如 Scrapy, Beautiful Soup) 描述:这些工具可以帮助你从网上自动抓取和…

鱼和熊掌如何兼得?一文解析RDS数据库存储架构升级

在2023年云栖大会上,阿里云数据库产品事业部负责人李飞飞在主题演讲中提到,瑶池数据库推出“DB存储”一体化能力,结合人工智能、机器学习、存储等方法和创新能力,实现Buffer Pool Extension能力和智能冷温热数据分层能力。在大会的…

01神经网络的理论及实现

感知机的缺点就是需要设置合适的权重,而权重的设置都是人工操作的。 1、从感知机到神经网络 重新画出感知机的模型,在图上加上偏置,由于偏置始终为1,所以颜色加深。 图1-1 感知机模型 引入新函数(激活函数)&#xff…

面试题整理01

1.i有没有线程安全问题?为什么?如何解决它? i在多线程环境下存在线程安全问题.原因是,i不是一个原子操作,它实际上包含了读取i的值,然后将其加1,然后将结果写回i的三个步骤.在多线程环境下,如果两个或多个线程同时执行i操作,可能会导致竞争条件. 举个例子.假设i的初始值为…

Elasticsearch高性能优化实践

Elasticsearch高性能优化实践_es批量导入数据多少为最优-CSDN博客 ES 性能调优 ES 的默认配置,是综合了数据可靠性、写入速度、搜索实时性等因素。实际使用时,我们需要根据公司要求,进行偏向性的优化。 一、写优化 假设我们的应用场景要求是,每秒 300 万的写入速度,每条 …

2024前端面试题汇总

2024前端面试题汇总 1、全局变量与局部变量2、Vue3 区分ref 与 reactive 的原因3、关于服务端渲染(SSR)与客户端渲染(CSR)的理解4、单页面应用(SPA)与多页面应用(MPA)的优劣5、Vue2 …

计算机二级Python选择题考点——Python语言程序设计Ⅱ

代码1&#xff1a; def fibRate(n):if n < 0:return -1elif n 1:return -1elif n 2:return 1else:L [1,5]for i in range(2,n):L.append(L[-1] L[-2])return L[-2] % L[-1] print(fibRate(7))n 7 L [1,5] i 2 , 3 , 4 , 5 , 6 i 2 -> L[-1] L[-2] 5 1 6 -&g…