leetcode 502. IPO
假设 力扣(LeetCode)即将开始 IPO 。为了以更高的价格将股票卖给风险投资公司,力扣 希望在 IPO 之前开展一些项目以增加其资本。 由于资源有限,它只能在 IPO 之前完成最多 k 个不同的项目。帮助 力扣 设计完成最多 k 个不同项目后得到最大总资本的方式。
给你 n 个项目。对于每个项目 i ,它都有一个纯利润 profits[i] ,和启动该项目需要的最小资本 capital[i] 。
最初,你的资本为 w 。当你完成一个项目时,你将获得纯利润,且利润将被添加到你的总资本中。
总而言之,从给定项目中选择 最多 k 个不同项目的列表,以 最大化最终资本 ,并输出最终可获得的最多资本。
答案保证在 32 位有符号整数范围内。
示例 1:
输入:k = 2, w = 0, profits = [1,2,3], capital = [0,1,1]
输出:4
解释:
由于你的初始资本为 0,你仅可以从 0 号项目开始。
在完成后,你将获得 1 的利润,你的总资本将变为 1。
此时你可以选择开始 1 号或 2 号项目。
由于你最多可以选择两个项目,所以你需要完成 2 号项目以获得最大的资本。
因此,输出最后最大化的资本,为 0 + 1 + 3 = 4。
示例 2:
输入:k = 3, w = 0, profits = [1,2,3], capital = [0,1,2]
输出:6
提示:
1 <= k <= 105
0 <= w <= 109
n == profits.length
n == capital.length
1 <= n <= 105
0 <= profits[i] <= 104
0 <= capital[i] <= 109
题目链接
思路:可用贪心法和堆来实现,每次把满足条件的入堆,然后区收益最大的(也可以把数组提前排序下,这样就不用反复遍历了)
from functools import cmp_to_key
import heapq
class Solution:def compare(self, num1, num2):## (profit, capital)if num1[0] > num2[0]:return -1elif num1[0] == num2[0]:if num1[1] <= num2[1]:return -1return 1else:return 1def findMaximizedCapital(self, k: int, w: int, profits: List[int], capital: List[int]) -> int:k = min(k, len(profits))nums = []for i in range(len(profits)):nums.append([profits[i], capital[i]])#nums = sorted(nums, key=cmp_to_key(self.compare))res = wss = []for i in range(k):temp = []for x in nums:if x[1] <= res:## heapq 默认是最小值堆,增加一个负号,构建最大值堆heapq.heappush(ss, [-x[0], x[1]])else:temp.append(x)if len(ss) == 0:return res#print(ss)top = heapq.heappop(ss)res -= top[0]nums = temp[:]return res
相关文章:
leetcode 502. IPO
假设 力扣(LeetCode)即将开始 IPO 。为了以更高的价格将股票卖给风险投资公司,力扣 希望在 IPO 之前开展一些项目以增加其资本。 由于资源有限,它只能在 IPO 之前完成最多 k 个不同的项目。帮助 力扣 设计完成最多 k 个不同项目后…...
[软考中级]软件设计师-计算机网络
网络设备 物理层 物理层不能隔离广播域和冲突域 中继器,集线器 集线器可看成是特殊的多路中继器 数据链路层 可以隔离冲突域不能隔离广播域 网桥,交换机 交换机是多端口的网桥 网络层 可以隔离广播域和冲突域 路由器 应用层 网关 协议簇 …...
Linux搭建我的世界MC服务器 【Minecraft外网联机教程】
目录 前言 1. 安装JAVA 2. MCSManager安装 3.局域网访问MCSM 4.创建我的世界服务器 5.局域网联机测试 6.安装cpolar内网穿透 7. 配置公网访问地址 8.远程联机测试 9. 配置固定远程联机端口地址 9.1 保留一个固定tcp地址 9.2 配置固定公网TCP地址 9.3 使用固定公网…...
APISIX 中ETCD 的问题
1. 问题1 : Error: client: etcd cluster is unavailable or misconfigured; error #0: client: endpoint http://etcd:2379 exceeded header timeout error #0: client: endpoint http://etcd:2379 exceeded header timeout 修改APISIX config ETCD_ADVERTISE_CL…...
SSH版本信息可被获取
漏洞描述 Name SSH版本信息可被获取 Description SSH服务允许远程攻击者获得ssh的具体信息,如版本号等等。这可能为攻击者发动进一步攻击提供帮助。 CVE No. CVE-1999-0634 分析结果 该问题不属于漏洞,不存在安全风险。SSH协议是一种安全协议&am…...
android 修改输出apk的包名
一,打包方式使用IDE菜单选项 二、在app级别的build.gradle下配置: static def releaseTime() {return new Date().format("yyyyMMdd.kkmm", TimeZone.getTimeZone("GMT8")) }android.applicationVariants.all { variant ->print…...
uni-app:文本超出部分用省略号表示
效果 前 后 核心代码 white-space: nowrap; /* 强制不换行 */ text-overflow: ellipsis; /* 超过部分省略号代替 */ overflow: hidden; /* 必须同时设置overflow:hidden才能生效 */ 完整代码 <template><view><view class"all_style"><view c…...
轻松实现视频、音频、文案批量合并,享受批量剪辑的便捷
在日常生活中,我们经常会需要将多个视频、音频和文案进行合并剪辑,以制作出符合我们需求的短视频。然而,这个过程通常需要花费大量的时间和精力。幸运的是,现在有一款名为“固乔智剪软件”的工具可以帮助我们轻松完成这个任务。 首…...
Spring Boot、Nacos配置文件的优先级
在标准的 SpringBoot 应用中,本地配置加载顺序如下: 本地 bootstrap 配置,先于 application 配置加载。不带 profile 的配置,先于带 profile 的配置加载。xxx.yaml 先于 xxx.properties 加载。本地配置先于 nacos 配置中心加载。…...
GO脚本-模拟鼠标键盘
01GetCoordinate 获取坐标 package mainimport ("github.com/go-vgo/robotgo" )func main() {// 获取当前鼠标所在的位置x, y : robotgo.GetMousePos()println(x:, x, y:, y)}02GetColor 获取坐标颜色 package mainimport ("fmt&quo…...
Ubuntu设置SSH
在Ubuntu上通过SSH服务远程连接其他机器 首先通过以下命令判断是否安装SSH服务: ssh localhost如果出现 ssh: connect to host localhost port 22: Connection refused 则表示还未安装SSH。 通过以下命令安装SSH: sudo apt update sudo apt install…...
创作2周年?浅记一下~
前言: 最近确实有点缺乏去更新博客的动力,一晃两年过去了,其实也是我新入职公司的两年,两年虽然不长,但是确实发生了太多事情值得去记录下来... 机缘 说是机缘也不是算是,第一次写博客是刚好在CSDN里面查资…...
MATLAB算法实战应用案例精讲-【优化算法】光学显微镜算法(OMA)(附MATLAB代码实现)
前言 光学显微镜算法(Optical Microscope Algorithm, OMA)从光学显微镜对目标物体的放大能力中获得灵感,使用肉眼进行初始观察,并通过物镜和目镜模拟放大过程。通过两个实验验证了OMA的性能,该算法具有用户友好且不需要初始化参数的特点:(1)在50个Benchmark函数上,将OMA与…...
常见弯道输送机有哪些
提到弯道输送机您可能首先想到的就是弯道滚筒线,其实除了滚筒线之外,也有一些其他线体可以做弯道,下面就为您总结了4种常见的弯道输送机。 1、弯道皮带线:即线体转弯处设计成皮带输送机,这种形式的转弯设计可以实现不同…...
聚观早报 | 2023社交进入大变革时代;赛力斯发布9月产销快报
【聚观365】10月9日消息 2023社交进入大变革时代 赛力斯发布9月产销快报 Meta Quest 3头显上市在即 PayPay5年用户数超6000万 现代汽车9月销售约1.8万辆电动汽车 2023社交进入大变革时代 不久前,Meta推出社交平台Threads、微信种草社区“小绿书”开启内测&…...
nginx-proxy反向代理缓存
介绍: 反向代理缓存,类似于动静分离,即通过nginx代理服务器根据客户端发送的url请求,去后台服务器获取数据,将静态数据缓存到nginx代理服务器上,并配置有过期时间,当客户端下次以相同的url请求…...
Java反射(一)--- 类的实例化
文章目录 一、整理框架二、Java反射机制提供的功能三、反射相关的主要API四、相关代码:1.Person类2.反射之前,对于Person类的操作3.反射之后,对于Person类的操作 提示:以下是本篇文章正文内容,下面案例可供参考 一、整…...
web3.0时代分布式网络协议的异同
Web3.0时代标志着分布式网络协议的兴起,其中IPFS(InterPlanetary File System)和NDN(Named Data Networking)是备受瞩目的项目。尽管它们都属于分布式网络协议领域,但在多个方面存在显著区别。以下是IPFS和…...
【多线程案例】设计模式-单例模式
1.单例模式 什么是单例模式? 所谓单例,即单个实例。通过编码技巧约定某个类只能有唯一一个实例对象,并且提前在类里面创建好一个实例对象,把构造方法私有化,再对外提供获取这个实例对象的方法,࿰…...
MyBatis-Plus演绎:数据权限控制,优雅至极!
🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是尘缘,一个在CSDN分享笔记的博主。📚📚 👉点击这里,就可以查看我的主页啦!👇&#x…...
Android tinyalsa深度解析之pcm_params_get_period_size_max调用流程与实战(一百七十二)
简介: CSDN博客专家、《Android系统多媒体进阶实战》作者 博主新书推荐:《Android系统多媒体进阶实战》🚀 Android Audio工程师专栏地址: Audio工程师进阶系列【原创干货持续更新中……】🚀 Android多媒体专栏地址&a…...
Ubuntu:无网络环境下Docker离线部署全攻略
1. 离线部署Docker的核心挑战与解决方案 在完全隔离网络的环境中部署Docker,就像要在荒岛上搭建一个现代化厨房——所有食材和工具都得提前准备好。我经历过三次企业级离线部署,最深刻的一次是在某金融机构数据中心,他们的服务器甚至不允许插…...
从零搭建无人船:两年实战后,我总结的ArduPilot+Pixhawk避坑全流程
从零搭建无人船:两年实战后,我总结的ArduPilotPixhawk避坑全流程 第一次把无人船放进水里时,GPS信号突然丢失,船体在河中央失控打转——这个惊心动魄的瞬间让我意识到,开源飞控的实战应用远不是下载代码、连接硬件那么…...
SmolVLA开发环境搭建:从操作系统安装到模型运行的完整路径
SmolVLA开发环境搭建:从操作系统安装到模型运行的完整路径 如果你刚拿到一台新电脑,或者想把旧机器彻底清理干净,从头开始搭建一个能跑SmolVLA模型的环境,那这篇文章就是为你准备的。很多教程都假设你已经有了一个可用的系统&…...
科哥二次开发Image-to-Video:性能提升39%,小白友好度大增
科哥二次开发Image-to-Video:性能提升39%,小白友好度大增 1. 项目背景与核心价值 Image-to-Video技术正在改变内容创作的方式,它能够将静态图片转化为生动的视频内容。然而,原始I2VGen-XL模型在实际应用中面临两大挑战ÿ…...
超级电容matlab simulink储能模型仿真,能量管理 蓄电池充放电模型,电池-超级电容混合储能系统能量管理
超级电容matlab simulink储能模型仿真,能量管理 蓄电池充放电模型,电池-超级电容混合储能系统能量管理这是一个关于超级电容-蓄电池混合储能系统(HESS)能量管理策略的完整MATLAB/Simulink仿真方案。 一、系统架构与仿真模型 混合储…...
B2B战略到营销分解实战:OGSM / 主题 / 内容 / 渠道 / 节奏五层框架
# B2B战略到营销分解实战:OGSM / 主题 / 内容 / 渠道 / 节奏五层框架先给结论:很多B2B企业真正缺的不是动作,而是把战略翻译成可协同、可执行、可复盘的年度经营结构。## 一、定义 B2B战略到营销分解是什么:把品牌战略中的目标客户…...
ssm+java2026年毕设数据分析教学网站【源码+论文】
本系统(程序源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景关于会议管理问题的研究,现有研究主要以传统OA办公系统或通用协同办公平台为主,专门针对会议全生命周期…...
ESP32/ESP8266嵌入式IoT工具库:轻量、可靠、生产就绪
1. 项目概述esp-iot-utils是面向 ESP32 和 ESP8266 平台的轻量级、生产就绪型嵌入式 IoT 工具集。它并非功能堆砌的“大而全”框架,而是以工程师视角提炼出高频、重复、易出错的底层任务——网络通信、结构化数据解析、时间同步、配置持久化与系统状态管理——并封装…...
5分钟快速部署!终极开源邮件营销平台BillionMail完全指南 [特殊字符]
5分钟快速部署!终极开源邮件营销平台BillionMail完全指南 🚀 【免费下载链接】BillionMail Billion Mail is a future open-source email marketing platform designed to help businesses and individuals manage their email campaigns with ease 项…...
