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

面试150 IPO

在这里插入图片描述

思路

首先,将每个项目的启动资本需求和对应的利润配对,组成一个二元组列表,并根据所需资本从小到大进行排序。这样可以确保在遍历项目列表时,能按所需资本的升序处理。接着,使用一个最大堆(通过在堆中存入利润的负值来实现)来维护当前资本下所有可选项目的利润。在每一轮(最多进行 k 轮)中,程序会将当前可承受的所有项目(即资本需求不超过当前拥有资本的项目)加入最大堆,然后从中选择利润最高的项目(堆顶元素),执行该项目并将其利润加到当前资本上。如果在某一轮没有任何可执行的项目,算法会提前退出。最终,返回选择最多 k 个项目后所能获得的最大资本。该算法通过贪心策略结合堆结构,兼顾了效率和最优选择。

import heapq
from typing import Listclass Solution:def findMaximizedCapital(self, k: int, w: int, profits: List[int], capital: List[int]) -> int:num_projects = len(profits)project_list = []# 将每个项目的资本需求和对应利润配对for i in range(num_projects):project_list.append([capital[i], profits[i]])# 按所需资本升序排序project_list.sort()max_profit_heap = []  # 最大堆,用于存储可选项目的利润(取负值实现最大堆)project_index = 0available_capital = wfor _ in range(k):# 将当前资本可承受的项目加入最大堆while project_index < num_projects and project_list[project_index][0] <= available_capital:heapq.heappush(max_profit_heap, -project_list[project_index][1])project_index += 1if not max_profit_heap:break  # 没有可选项目,退出循环# 选择利润最高的项目max_profit = -heapq.heappop(max_profit_heap)available_capital += max_profitreturn available_capital
http://www.xdnf.cn/news/1191799.html

相关文章:

  • C#其他知识点
  • 实验-OSPF多区域
  • ubuntu下docker安装thingsboard物联网平台详细记录(附每张图)
  • KTO:基于行为经济学的大模型对齐新范式——原理、应用与性能突破
  • 栈----3.字符串解码
  • C语言函数精讲:从入门到精通( 指针(5))
  • 秋招Day20 - 微服务 - 概念
  • kafka的消费者负载均衡机制
  • 嵌入式硬件篇---有线串口通信问题
  • OpenCV图像梯度、边缘检测、轮廓绘制、凸包检测大合集
  • IntelliJ IDEA 中左上方未显示项目根目录问题
  • 数据库索引详解:原理、设计原则与应用场景
  • 渲染篇(二):解密Diff算法:如何用“最少的操作”更新UI
  • Word文档转HTML查看器(字体颜色、字体背景、超链接、图片、目录等全部转换为html),统计Word文档段落数量、图片数量、表格数量、列表数量
  • HTML5元素相关补充
  • 小架构step系列26:Spring提供的validator
  • CS231n-2017 Lecture7训练神经网络(二)笔记
  • 三防平板搭载2D扫描头:工业数据采集的革新利器
  • Vue3 学习教程,从入门到精通,Vue3 样式绑定语法详解与案例(17)
  • 零基础 “入坑” Java--- 十四、【练习】图书小系统
  • 一、Spring框架结构组成详解
  • Transformer:颠覆NLP的自注意力革命
  • C++___快速入门(上)
  • 图解网络-小林coding笔记(持续更新)
  • Creating Strings
  • [特殊字符] 嵌入式队列精要指南:数据流的艺术与实战
  • Java学习|黑马笔记|Day23】网络编程、反射、动态代理
  • 【动态规划-斐波那契数列模型】理解动态规划:斐波那契数列的递推模型
  • MongoDB数据库高并发商业实践优化·运行优化之不可使用root账户进行MongoDB运行-优雅草卓伊凡
  • 大型微服务项目:听书——12 数据一致性自定义starter封装缓存操作