当前位置: 首页 > 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;}
}
http://www.lryc.cn/news/416138.html

相关文章:

  • SQLite
  • 浅谈 Mybatis 框架
  • 【星海随笔】OSPF协议
  • Vue 使用elementUI-plus el-calendar加 公历转农历 是否节假日 等
  • SQL-锁
  • 索引小tips
  • 2024年【中级消防设施操作员(考前冲刺)】报名考试及中级消防设施操作员(考前冲刺)免费试题
  • 数据结构:栈(含源码)
  • 如何使用Markdown编辑器
  • 当代最火的哲学家颜廷利:全球公认十个最厉害的思想家之一
  • android13内核增加调试接口给上层使用
  • linux:phpstudy安装及日常命令使用[表格]
  • 【python】Linux升级版本
  • 鸿蒙开发if判断有点坑
  • IT课程学习搭子
  • hive拼接字符串concat函数的用法
  • Linux-理解shell
  • FutureTask详解
  • javase综合案例4 -- 考试系统
  • Logistic回归
  • Langchain-Chatchat+Xinference集成部署
  • 江协科技51单片机学习- p33 PWM呼吸灯和直流驱动电机调速
  • 使用Jetbrains.Rider反编译Unity的DLL文件看源码
  • 【学习笔记】决策单调性优化DP
  • 【每日一题】【二分图最大匹配】【经典板子题】有大家喜欢的零食吗 河南萌新联赛2024第(一)场:河南农业大学 C题 C++
  • 【python】OpenCV—Image Colorization
  • vue 学习笔记
  • 武汉流星汇聚:‘中国制造’闪耀欧洲站,体育赛事成亚马逊增长点
  • RPA是什么?探讨RPA发展的最新趋势 | RPA研究
  • sqlalchemy时间范围查询