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

银行项目利润问题(贪心思想)

import java.util.Comparator;
import java.util.PriorityQueue;public class test32 {//输入正数数组costs、正数数组profits、正数K、正数M//costs[i]表示i号项目花费,profits[i]表示i号项目在扣除花费后还挣的钱//K表示有多少项目//M表示初始资金//每做完一个项目,获得的收益可以支持做下一个项目。不能并行的做项目//输出最后获得的最大钱数public static class Program{public int p;public int c;public Program(int p, int c){this.p = p;this.c = c;}}//根据花费建立小根堆的比较器public static class MinCostComparator implements Comparator<Program>{public int compare(Program o1 , Program o2){return o1.c - o2.c;}}//根据利润建立大根堆的比较器public static class MaxProfitComparator implements Comparator<Program>{public int compare(Program o1 ,Program o2){return o2.p - o1.p;}}//costs[i]表示i号项目花费,profits[i]表示i号项目在扣除花费后还挣的钱//K表示有多少项目//M表示初始资金public static int fingMaximizedCapital(int K ,int M ,int[] Profits , int[] costs){//建出花费的小根堆PriorityQueue<Program> minCostQ=new PriorityQueue<>(new MinCostComparator());//建出利润的大根堆PriorityQueue<Program> maxProfitQ=new PriorityQueue<>(new MaxProfitComparator());//所有项目进入由花费建立的小根堆里for (int i = 0; i < Profits.length; i++) {minCostQ.add(new Program(Profits[i] , costs[i]));}for (int i = 0; i < K; i++) {//如果小根堆不为空且小根堆堆顶的花费小于目前的资金数, 小根堆弹出的项目进入大根堆//即目前所有可以做的项目全进大根堆来比较利润while (!minCostQ.isEmpty() && minCostQ.peek().c <= M){maxProfitQ.add(minCostQ.poll());}//当大根堆空了,就不做项目,提前返回Mif(maxProfitQ.isEmpty()){return M;}//大根堆的堆顶的利润加到M中M += maxProfitQ.poll().p;}return M;}
}

相关文章:

银行项目利润问题(贪心思想)

import java.util.Comparator; import java.util.PriorityQueue;public class test32 {//输入正数数组costs、正数数组profits、正数K、正数M//costs[i]表示i号项目花费&#xff0c;profits[i]表示i号项目在扣除花费后还挣的钱//K表示有多少项目//M表示初始资金//每做完一个项目…...

SQLite

SQLite Insert 插入 语句 方式1&#xff1a; INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)] VALUES (value1, value2, value3,...valueN); 方式2&#xff1a; INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN); &#xff08;如果要…...

浅谈 Mybatis 框架

文章目录 一、什么是MyBatis?1.2、JDBC 二、使用Mybatis2.1、配置MyBatis开发环境2.1.1、配置连接字符串2.1.2、配置MyBatis中的XML路径 2.2、使用MyBatis模式和语法操作数据库 三、使用 Mybatis 进行增删改查操作的要点3.1、ResultMap的用法 四、Mybatis操作难点4.1、#{ } 和…...

【星海随笔】OSPF协议

OSPF OSPF 可在单一自治系统&#xff08;Autonomous System, AS&#xff09;内决策路由。OSPF 是目前内部网关协议中使用最为广泛、性能最优的一个动态路由协议。 (1) OSPF 的特点。可适应大规模的网&#xff0c;路由变化收敛速度块&#xff0c;无路由自环&#xff0c;支持变…...

Vue 使用elementUI-plus el-calendar加 公历转农历 是否节假日 等

效果图&#xff1a; 1. 使用到自定文件 calendar.js /*** 1900-2100区间内的公历、农历互转* charset UTF-8* Author Jea杨(JJonlineJJonline.Cn)* Time 2014-7-21* Time 2016-8-13 Fixed 2033hex、Attribution Annals* Time 2016-9-25 Fixed lunar LeapMonth Param…...

SQL-锁

一.锁的介绍 锁是计算机协调多个进程或线程并发访问一资源的机制。在数据中,除传统的计算资源(CPU,RAM,I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性,有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因…...

索引小tips

一、优化原则 关于创建索引&#xff1a; 1. 【强制】InnoDB表必须主键为id int/bigint auto_increment&#xff0c;且主键值禁⽌被更新 。 2. 【强制】InnoDB和MyISAM存储引擎表&#xff0c;索引类型必须为 BTREE 。 3. 【建议】主键的名称以 pk 开头&#xff0c;唯⼀键以…...

2024年【中级消防设施操作员(考前冲刺)】报名考试及中级消防设施操作员(考前冲刺)免费试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 中级消防设施操作员&#xff08;考前冲刺&#xff09;报名考试是安全生产模拟考试一点通生成的&#xff0c;中级消防设施操作员&#xff08;考前冲刺&#xff09;证模拟考试题库是根据中级消防设施操作员&#xff08;…...

数据结构:栈(含源码)

目录 一、栈的概念和结构 二、栈的实现 2.1 头文件 2.2 各个功能的实现 初始化栈 入栈 出栈 获取栈顶元素和栈中有效个数 判断栈是否为空 栈的销毁 2.3 测试 完整源码 一、栈的概念和结构 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和…...

如何使用Markdown编辑器

欢迎使用Markdown编辑器 你好&#xff01; 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章&#xff0c;了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持&#x…...

当代最火的哲学家颜廷利:全球公认十个最厉害的思想家之一

颜廷利书法特点和艺术成就:全球公认十个最厉害的思想家之一&#xff0c;颜廷利教授是一位杰出的‌书法家,他的书法作品不仅体现了‌中国传统文化,而且在国内外享有高度评价,对当代书法艺术产生了深远的影响。在中国十大顶级哲学家排行榜上,当今世界最重要的思想家颜廷利教授的书…...

android13内核增加调试接口给上层使用

总纲 android13 rom 开发总纲说明 目录 1.前言 2.处理方法分析 3.代码参考 3.1方法1 3.2方法2 3.3方法3 3.4方法4 4.彩蛋 1.前言 有时候,我们在开机的过程中,adb服务还没有起来,系统奔溃了,不能正常开机,我们没法看到相关的logcat信息,导致我们不能很快的定…...

linux:phpstudy安装及日常命令使用[表格]

官网安装&#xff1a;小皮面板下载安装&#xff0c;一键管理服务器-小皮面板 (xp.cn) centos安装&#xff1a; yum install -y wget && sudo wget -O install.sh https://dl.xp.cn/dl/xp/install.sh && sudo bash install.sh 快速使用 [rootlocalhost ~]# …...

【python】Linux升级版本

目的 迁移项目包路径到服务器上 查看服务器包是否和本地已有项目python版本相同然后发现~嗯不一样 项目上包时用的3.8~ 服务器用的2.7 查看方法&#xff1a; python -version解决方案 一&#xff1a;项目所有包重新下载 二&#xff1a;升级服务器python版本 第二种步骤&…...

鸿蒙开发if判断有点坑

它的判断和Android的有点不同,归结到底不是同一种语言,数据类型不一样 if (0) {logContent("aa","0") } else {logContent("aa","00")...

IT课程学习搭子

各种IT课程齐全可学&#xff0c;价格你绝对想不到&#xff0c;相比于培训班有以下优势&#xff1a; 1、避免被割韭菜&#xff0c;避免踩坑&#xff0c;避免交智商税&#xff0c;最低的成本学最有价值的课&#xff0c;同时又能达到比培训班更好的效果 2、收徒&#xff0c;带你学…...

hive拼接字符串concat函数的用法

在 Hive 中&#xff0c;字符串拼接是一种常见的操作&#xff0c;用于将多个字符串连接在一起形成一个新的字符串。这在数据处理和分析过程中经常会用到&#xff0c;比如将不同列的值拼接成一个完整的信息、拼接成文件路径等等。 字符串拼接函数 在 Hive 中&#xff0c;我们可…...

Linux-理解shell

文章目录 5. 理解shell5.1 shell的类型5.2 交互shell和系统默认shell5.3 安装zsh shell程序5.4 shell的父子关系5.5 命令列表5.6 命令分组5.7 使用命令分组创建子shell5.8 子shell用法5.9 shell的非内建命令和内建命令5.9.1 非内建命令5.9.2 内建命令5.9.3 history和alias命令介…...

FutureTask详解

目录 FutureTask详解1、FutureTask简介2、FutureTask内部结构继承结构类属性构造方法内部类WaitNode 3、Runnable、Callable、Future、RunnableFuture接口①、Runnable接口②、Callable接口③、Future接口④、RunnableFuture接口总结对比 4、FutureTask的使用示例普通Thread使用…...

javase综合案例4 -- 考试系统

文章目录 一&#xff0c;项目要求二&#xff0c;创建实体类ExamItem三&#xff0c;创建考试服务类ExamService3.1 全局变量 考题列表itemList(List< ExamItem >类型)&#xff0c;答案数组answerArr (String[]类型)&#xff0c;得分score3.2 初始化方法init()3.3 打印菜单…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库&#xff08;如 Redisson&#xff09;相比于开发者自己基于 Redis 命令&#xff08;如 SETNX, EXPIRE, DEL&#xff09;手动实现分布式锁&#xff0c;提供了巨大的便利性和健壮性。主要体现在以下几个方面&#xff1a; 原子性保证 (Atomicity)&#xff…...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 &#xff08;一&#xff09;引用计数法 &#xff08;二&#xff09;可达性分析算法 二、垃圾回收算法 &#xff08;一&#xff09;标记清除 &#xff08;二&#xff09;标记整理 &#xff08;三&#xff09;复制 &#xff08;四&#xff…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...