当前位置: 首页 > news >正文

基本算法--贪心

1.简述

贪心法的效率非常高,复杂度常常为O(1)是一种局部最优的解题方法,而很多问题都需要求全局最优,,所以在使用贪心法之前需要评估是否能从局部最优推广到全局最优。

2.思路

作为算法的贪心,它的执行过程是把整个问题分解成多个步骤,在每个步骤都选取当前步骤的最优方案,直到所有步骤结束;在每步都不考虑对后续步骤的影响;在后续步骤中也不再回头改变前面的选择

3.举例:最少硬币问题

某人带着3种面值的硬币去购物,假设有1元、2元、5元的面值,硬币数量不限;他需要支付M元,请问怎么支付才能使硬币数量最少?

4.思路

先拿最大的,依次下去。。。。。首先要对硬币面值进行排序

每拿一次,都要对剩余金额进行更新

每次都要拿最大面值的最多个,进行除运算

5.代码

coins[i]是硬币面值

count[i]计数

M是所付金额(可以改编成从键盘输入随机金额)

public class 最少硬币问题 {public static void main(String[] args) {int M=27;//需要支付的金额int[] coins= {5,2,1};//硬币面值数组,从大到小排序int[] result=findMinimumCoins(M,coins);System.out.println("使用硬币数量最少得支付方式为:");for(int i=0;i<result.length;i++) {System.out.println("面值"+coins[i]+"元的硬币使用"+result[i]+"枚");}
}public static int[]  findMinimumCoins(int M,int[] coins) {int[] count=new int[coins.length];//存储每种硬币数量的数组//从面值最大的硬币开始for(int i=0;i<coins.length;i++) {//计算当前面值硬币可以使用多少个count[i]=M/coins[i];//更新剩余需要支付的金额M%=coins[i];}return count;}
}

6.学习点

1)核心就是写一个方法,进行每次付总金额中能有多少个最大面值的个数,进行计数,更新剩余金额

        //从面值最大的硬币开始
        for(int i=0;i<coins.length;i++) {
            //计算当前面值硬币可以使用多少个
            count[i]=M/coins[i];
            //更新剩余需要支付的金额
            M%=coins[i];
        }

2)自己写一个方法时要注意,要不要返回值,返回什么类型的值

方法名findMinimumCoins(),括号中写入参数,并表明参数的数据类型

方法名findMinimumCoins()前面 int[] 表示该方法的返回值类型是一个int 数组----与之对应的是   int[] count=new int[coins.length],新定义的count数组也是int类型的

相关文章:

基本算法--贪心

1.简述 贪心法的效率非常高&#xff0c;复杂度常常为O&#xff08;1&#xff09;&#xff0c;是一种局部最优的解题方法&#xff0c;而很多问题都需要求全局最优&#xff0c;&#xff0c;所以在使用贪心法之前需要评估是否能从局部最优推广到全局最优。 2.思路 作为算法的贪…...

13. 串口接收模块的项目应用案例

1. 使用串口来控制LED灯工作状态 使用串口发送指令到FPGA开发板&#xff0c;来控制第7课中第4个实验的开发板上的LED灯的工作状态。 LED灯的工作状态&#xff1a;让LED灯按指定的亮灭模式亮灭&#xff0c;亮灭模式未知&#xff0c;由用户指定&#xff0c;8个变化状态为一个循…...

Python re找到特定pattern并将此pattern重复n次

要找到字符串s中的数字&#xff0c;并将这些数字重复3次&#xff1a; import re s "abc123def456ghi789" # 找到所有的数字 numbers re.findall(r\d, s) # 重复每个数字3次 repeated_numbers [num * 3 for num in numbers] # 将重复的数字放回原位置 #…...

ChatGpt报错:We ran into an issue while authenticating you解决办法

在登录ChatGpt时报错&#xff1a;Oops&#xff01;,We ran into an issue while authenticating you.(我们在验证您时遇到问题)&#xff0c;记录一下解决过程。 完整报错&#xff1a; We ran into an issue while authenticating you. If this issue persists, please contact…...

如何从 iPhone 恢复已删除的视频:简单有效方法

无论您是在尝试释放空间时不小心删除了 iPhone 上的视频&#xff0c;还是在出厂时清空了手机&#xff0c;现在所有数据都消失了&#xff0c;都不要放弃。有一些方法可以恢复这些视频。 在本文中&#xff0c;我们将向您展示六种最有效的数据恢复方法&#xff0c;可以帮助您从 i…...

【python量化交易】qteasy使用教程02 - 获取和管理金融数据

qteasy教程2 - 获取并管理金融数据 qteasy教程2 - 获取并管理金融数据开始前的准备工作获取基础数据以及价格数据下载交易日历和基础数据查看股票和指数的基础数据下载沪市股票数据从本地获取股价数据生成K线图 数据类型的查找定期下载数据到本地回顾总结 qteasy教程2 - 获取并…...

数据库学习案例20240206-ORACLE NEW RAC agent and resource关系汇总。

1 集群架构图 整体集群架构图如下&#xff1a; 1 数据库启动顺序OHASD层面 操作系统进程init.ohasd run启动ohasd.bin init.ohasd run 集群自动启动是否被禁用 crsctl enable has/crsGIHOME所在文件系统是否被正常挂载。管道文件npohasd是否能够被访问&#xff0c; cd /var/t…...

TypeScript 入门

课程地址 ts 开发环境搭建 npm i -g typescript查看安装位置&#xff1a; $ npm root -g C:\Users\Daniel\AppData\Roaming\npm\node_modules创建 hello.ts&#xff1a; console.log("hello, ts");编译 ts 文件&#xff0c;得到 js 文件&#xff1a; $ tsc foo.…...

linux 磁盘相关操作

1.U盘接入虚拟机 &#xff08;1&#xff09;在插入u盘时&#xff0c;虚拟机会检测usb设备&#xff0c;在弹出窗口选择连接到虚拟机即可。 &#xff08;2&#xff09;或 直接在虚拟机--->可移动设备--->找到U盘---->连接 2.检测U盘是否被虚拟机识别 ls /dev/sd* 查…...

PyTorch: torch.max()函数详解

torch.max函数详解&#xff1a;基于PyTorch的深入探索 &#x1f335;文章目录&#x1f335; &#x1f333;引言&#x1f333;&#x1f333;torch.max()函数简介&#x1f333;&#x1f333;torch.max()的返回值&#x1f333;&#x1f333;torch.max()的应用示例&#x1f333;&am…...

Rust基础拾遗--核心功能

Rust基础拾遗 前言1.所有权与移动1.1 所有权 2.引用3.特型与泛型简介3.1 使用特型3.2 特型对象3.3 泛型函数与类型参数 4.实用工具特型5.闭包 前言 通过Rust程序设计-第二版笔记的形式对Rust相关重点知识进行汇总&#xff0c;读者通读此系列文章就可以轻松的把该语言基础捡起来…...

MySQL:常用指令

MySQL官网 一、在Windows 系统 cmd窗口里执行的命令 启动:net start MySQL停止:net stop MySQL卸载:sc delete MySQL 二、在macOS系统终端里执行的命令 启动&#xff1a;mysql.server start停止&#xff1a;mysql.server stop重启&#xff1a;mysql.server restart 三、执行帮…...

Scrapy:Python中强大的网络爬虫框架

Scrapy&#xff1a;Python中强大的网络爬虫框架 在当今信息爆炸的时代&#xff0c;从互联网上获取数据已经成为许多应用程序的核心需求。Scrapy是一款基于Python的强大网络爬虫框架&#xff0c;它提供了一种灵活且高效的方式来提取、处理和存储互联网上的数据。本文将介绍Scrap…...

linux系统非关系型数据库redis的配置文件

redis配置文件 Redis的配置文件位于Redis安装目录下&#xff0c;文件名为redis.conf&#xff0c;配置项说明如下 Redis默认不是以守护进程的方式运行&#xff0c;可以通过该配置项修改&#xff0c;使用yes启用守护进程 daemonize no当Redis以守护进程方式运行时&#xff0c;Red…...

电力负荷预测 | 基于LSTM、TCN的电力负荷预测(Python)

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 电力负荷预测 | 基于LSTM、TCN的电力负荷预测(Python) 源码设计 #------------------...

Java+SpringBoot实习管理系统探秘

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…...

c入门第十六篇——学生成绩管理系统

师弟&#xff1a;“师兄&#xff0c;我最近构建了一个学生成绩管理系统&#xff0c;有空试用一下么&#xff1f;” 我&#xff1a;“好啊&#xff01;” 一个简单的学生成绩管理系统&#xff0c;基本功能包括&#xff1a;添加学生信息、显示所有学生信息、按学号查找学生信息、…...

大文件上传如何做断点续传?

文章目录 一、是什么分片上传断点续传 二、实现思路三、使用场景小结 参考文献 一、是什么 不管怎样简单的需求&#xff0c;在量级达到一定层次时&#xff0c;都会变得异常复杂 文件上传简单&#xff0c;文件变大就复杂 上传大文件时&#xff0c;以下几个变量会影响我们的用…...

SpringCloud-Eureka原理分析

Eureka是Netflix开源的一款用于实现服务注册与发现的工具。在微服务架构中&#xff0c;服务的动态注册和发现是必不可少的组成部分&#xff0c;而Eureka正是为了解决这一问题而诞生的。 一、为何需要Eureka 在微服务架构中&#xff0c;服务之间的协同合作和高效通信是至关重要…...

LeetCode周赛——384

1.修改矩阵&#xff08;模拟&#xff09; class Solution { public:vector<vector<int>> modifiedMatrix(vector<vector<int>>& matrix) {int n matrix.size();int m matrix[0].size();vector<int> ans(m);for(int i 0; i < m; i)for(…...

快速体验WAN2.2文生视频:ComfyUI预置工作流,2分钟生成测试视频

快速体验WAN2.2文生视频&#xff1a;ComfyUI预置工作流&#xff0c;2分钟生成测试视频 1. 为什么选择WAN2.2文生视频工作流 如果你正在寻找一个简单易用、效果出色的文生视频工具&#xff0c;WAN2.2文生视频工作流绝对值得一试。这个预置在ComfyUI中的工作流&#xff0c;让视…...

从零开始玩转translategemma-27b-it:Ollama环境搭建与提示词详解

从零开始玩转translategemma-27b-it&#xff1a;Ollama环境搭建与提示词详解 1. 环境准备与快速部署 想要体验强大的图文翻译能力&#xff0c;首先需要搭建好运行环境。translategemma-27b-it是一个基于Ollama部署的翻译模型&#xff0c;支持文本和图片的翻译功能。 1.1 系统…...

Node.js后端服务开发:搭建调用Lingbot-Depth-Pretrain-ViTL-14的API接口

Node.js后端服务开发&#xff1a;搭建调用Lingbot-Depth-Pretrain-ViTL-14的API接口 你是不是遇到过这样的场景&#xff1a;手头有一个很厉害的AI模型&#xff0c;比如能估算图片深度的Lingbot-Depth-Pretrain-ViTL-14&#xff0c;但不知道怎么把它变成一个方便调用的服务&…...

PySide6新手必看:从零开始用Python玩转Qt界面开发(附官方教程对比)

PySide6新手必看&#xff1a;从零开始用Python玩转Qt界面开发 在Python生态中&#xff0c;GUI开发一直是个让人又爱又恨的话题。当Tkinter显得过于简陋&#xff0c;而PyQt又面临商业授权困扰时&#xff0c;PySide6作为Qt官方推出的Python绑定&#xff0c;正成为越来越多开发者的…...

计算机毕业设计:Python汽车销售数据爬虫可视化分析平台 Flask框架 requests爬虫 可视化 数据分析 大数据 机器学习 大模型(建议收藏)✅

博主介绍&#xff1a;✌全网粉丝50W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战8年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ > &#x1f345;想要获取完整文章或者源码&#xff0c;或者代做&#xff0c;拉到文章底部即可与…...

新手零基础入门:用快马一键生成交互式python学习jupyter notebook

作为一个刚开始学Python的小白&#xff0c;最近发现用Jupyter Notebook来练习代码特别方便。特别是列表和字典这些基础数据结构&#xff0c;通过交互式单元格可以边学边改&#xff0c;效果比单纯看教程好多了。今天就用InsCode(快马)平台来演示如何快速生成一个适合新手的交互式…...

嵌入式Linux接入阿里飞燕物联网平台实战指南

1. 嵌入式Linux设备接入飞燕物联网平台全流程解析作为一名在嵌入式领域摸爬滚打多年的工程师&#xff0c;最近刚完成了一个将智能家居设备从旧平台迁移到阿里飞燕物联网平台的项目。这个过程中踩了不少坑&#xff0c;也积累了一些实战经验&#xff0c;今天就来详细分享一下基于…...

日期时间格式化中的字母代码解析与应用实例

1. 日期时间格式化字母代码入门指南 第一次接触日期时间格式化时&#xff0c;看到那些神秘的字母组合是不是一头雾水&#xff1f;yy、MM、dd这些看起来简单的代码&#xff0c;在实际使用中却藏着不少门道。作为处理时间数据的基础技能&#xff0c;掌握这些字母代码的含义和用法…...

大厂疯抢!AI Agent开发岗要求速览+进阶学习路线图,速收藏!

文章分析了大厂AI Agent开发岗位的核心要求&#xff0c;包括扎实的后端开发基础、AI知识储备、主流框架掌握等。文章强调AI应用开发与后端开发并非对立&#xff0c;而是相辅相成&#xff0c;并提供了详细的学习路线图&#xff0c;涵盖基础阶段、AI知识入门、实践项目、深化与拓…...

告别HEIC预览盲区:让Windows用户轻松驾驭苹果图像格式

告别HEIC预览盲区&#xff1a;让Windows用户轻松驾驭苹果图像格式 【免费下载链接】windows-heic-thumbnails Enable Windows Explorer to display thumbnails for HEIC files 项目地址: https://gitcode.com/gh_mirrors/wi/windows-heic-thumbnails 问题场景&#xff1…...