LeetCode 502. IPO(优先队列)
文章目錄
- 1. 題目
- 2. 解題
1. 題目
假設(shè) 力扣(LeetCode)即將開始 IPO 。
為了以更高的價格將股票賣給風險投資公司,力扣 希望在 IPO 之前開展一些項目以增加其資本。
由于資源有限,它只能在 IPO 之前完成最多 k 個不同的項目。
幫助 力扣 設(shè)計完成最多 k 個不同項目后得到最大總資本的方式。
給你 n 個項目。對于每個項目 i ,它都有一個純利潤 profits[i] ,和啟動該項目需要的最小資本 capital[i] 。
最初,你的資本為 w 。
當你完成一個項目時,你將獲得純利潤,且利潤將被添加到你的總資本中。
總而言之,從給定項目中選擇 最多 k 個不同項目的列表,以 最大化最終資本 ,并輸出最終可獲得的最多資本。
答案保證在 32 位有符號整數(shù)范圍內(nèi)。
示例 1: 輸入:k = 2, w = 0, profits = [1,2,3], capital = [0,1,1] 輸出:4 解釋: 由于你的初始資本為 0,你僅可以從 0 號項目開始。 在完成后,你將獲得 1 的利潤,你的總資本將變?yōu)?1。 此時你可以選擇開始 1 號或 2 號項目。 由于你最多可以選擇兩個項目,所以你需要完成 2 號項目以獲得最大的資本。 因此,輸出最后最大化的資本,為 0 + 1 + 3 = 4。示例 2: 輸入:k = 3, w = 0, profits = [1,2,3], capital = [0,1,2] 輸出:6提示: 1 <= k <= 10^5 0 <= w <= 10^9 n == profits.length n == capital.length 1 <= n <= 10^5 0 <= profits[i] <= 10^4 0 <= capital[i] <= 10^9來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/ipo
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
2. 解題
類似題目:LeetCode 1976. 到達目的地的方案數(shù)(迪杰斯特拉 Python 優(yōu)先隊列)
- 先按照啟動資金排序
- 把自己能夠得著的項目放進優(yōu)先隊列,取出最大收益的
- 再檢查自己能不能夠著更多的,重復(fù)執(zhí)行
796 ms 37.4 MB Python3
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關(guān)注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結(jié)
以上是生活随笔為你收集整理的LeetCode 502. IPO(优先队列)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1852. 每个子数组
- 下一篇: LeetCode 2069. 模拟行走机