502. IPO

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. 先對成本和利潤進行排序,成本低的我們優先進行遍歷
  2. 維護一個利潤的優先隊列,優先處理利潤高的
  3. 每次根據當前成本,將低于當前成本的項目加入優先隊列,然后從優先隊列中選出一個最大利潤的項目

代碼

class Solution {public int findMaximizedCapital(int k, int w, int[] profits, int[] capital) {int n=capital.length;int[][] res=new int[n][2];for(int i=0;i<n;i++){res[i][0]=profits[i];res[i][1]=capital[i];}int c=0;Arrays.sort(res,(o1,o2)->o1[1]-o2[1]);PriorityQueue<Integer> pq=new PriorityQueue<>((o1,o2)->o2-o1);for(int i=0;i<k;i++){while(c<n&&w>=res[c][1])pq.add(res[c++][0]);if(!pq.isEmpty())w+=pq.poll();}return w;}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/390122.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/390122.shtml
英文地址,請注明出處:http://en.pswp.cn/news/390122.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

記一次打包的詭異現象

一、前情提要&#xff1a; 今天線上打包&#xff0c;發現啟動正常&#xff0c;但是訪問異常&#xff0c;看日志也沒有打印出什么異常信息。 更新的微服務包訪問的時候一直報出【403】&#xff0c;訪問被拒 項目架構&#xff1a;springBoot maven 二、機緣巧合&#xff1a; 上午…

轉載:mysql存儲過程講解

記錄MYSQL存儲過程中的關鍵語法&#xff1a; DELIMITER // 聲明語句結束符&#xff0c;用于區分; CEATE PROCEDURE demo_in_parameter(IN p_in int) 聲明存儲過程 BEGIN …. END 存儲過程開始和結束符號 SET p_in1 變量賦值 DECLARE l_int int unsigned default 4000000; 變…

Diffie-Hellman:安全網絡通信背后的天才算法

Lets start with a quick thought experiment.讓我們從快速思考實驗開始。 You have a network of 3 computers, used by Alice, Bob, and Charlie. All 3 participants can send messages, but just in a way that all other clients who connected to the network can read …

掃盲丨關于區塊鏈你需要了解的所有概念

掃盲丨關于區塊鏈你需要了解的所有概念 如今存儲信息的方式有什么問題&#xff1f; 目前&#xff0c;支配我們生活的數據大部分都儲存在一個地方&#xff0c;不論是在私人服務器、云、圖書館或檔案館的紙上。大多數情況下這很好&#xff0c;但這也容易受到攻擊。 最近有消息稱&…

SpringBoot環境切換

2019獨角獸企業重金招聘Python工程師標準>>> 1.在application.yml中配置&#xff0c;如果java -jar banke-boot-bd-api-0.0.1-SNAPSHOT.jar&#xff0c;那么就是已application-test作為啟動的配置文件啟動 spring: profiles: active: test 2.如果java -jar banke-bo…

linux tar cvf_Linux中的Tar命令:Tar CVF和Tar XVF通過示例命令進行了解釋

linux tar cvfThe name tar is, by most accounts, short for tape archive. The "tapes" in question would be all those magnetic storage drives that were popular all the way back in the 1950s. 在大多數情況下&#xff0c; tar是磁帶歸檔的縮寫。 有問題的“…

1894. 找到需要補充粉筆的學生編號

1894. 找到需要補充粉筆的學生編號 一個班級里有 n 個學生&#xff0c;編號為 0 到 n - 1 。每個學生會依次回答問題&#xff0c;編號為 0 的學生先回答&#xff0c;然后是編號為 1 的學生&#xff0c;以此類推&#xff0c;直到編號為 n - 1 的學生&#xff0c;然后老師會重復…

[No0000B0]ReSharper操作指南1/16-入門與簡介

安裝指南 在安裝之前&#xff0c;您可能需要檢查系統要求。 ReSharper是一個VisualStudio擴展。它支持VisualStudio2010,2012,2013,2015和2017.安裝完成后&#xff0c;您將在VisualStudio的主菜單中找到新的ReSharper條目。大多數ReSharper命令都可以在這個菜單中找到。但是&a…

更改H2元素的顏色

In coding there are often many different solutions to a given problem. This is especially true when it comes to styling an HTML element.在編碼中&#xff0c;對于給定問題通常有許多不同的解決方案。 在樣式化HTML元素時&#xff0c;尤其如此。 One of the easiest …

[CTSC2008]圖騰totem

&#xff08;圖騰這題做的我頭疼 233&#xff09; 記 f(xxxx) 為 xxxx 出現的次數&#xff0c;那么題目就是要求 f(1324) - f(1243) - f(1432) 最有難度的是把上面的式子轉化一下&#xff0c;變成 f(1x2x) - f(14xx) - f(12xx) f(1234) 這點除非對 f 的求法能一眼看出來&#…

Box Shadow CSS教程–如何向任何HTML元素添加投影

We can add a drop shadow to any HTML element using the CSS property box-shadow. Heres how. 我們可以使用CSS屬性box-shadow將陰影添加到任何HTML元素。 這是如何做。 添加基本??投影 (Adding a Basic Drop Shadow) Lets first set up some basic HTML elements to add…

數據結構學習筆記(一)——《大話數據結構》

第一章 數據結構緒論 基本概念和術語 數據 描述客觀事物的符號&#xff0c;計算機中可以操作的對象&#xff0c;能被計算機識別并輸入給計算機處理的符號的集合。包括整型、實型等數值類型和字符、聲音、圖像、視頻等非數值類型。 數據元素 組成數據的、有一定意義的基本單位&a…

6. Z 字形變換

6. Z 字形變換 將一個給定字符串 s 根據給定的行數 numRows &#xff0c;以從上往下、從左到右進行 Z 字形排列。 比如輸入字符串為 “PAYPALISHIRING” 行數為 3 時&#xff0c;排列如下&#xff1a; P A H N A P L S I I G Y I R之后&#xff0c;你的輸出需要從…

java的垃圾回收機制包括:主流回收算法和收集器(jvm的一個主要優化方向)

2019獨角獸企業重金招聘Python工程師標準>>> java的垃圾回收機制是java語言的一大特色&#xff0c;解放了開發人員對內存的復雜控制&#xff0c;但如果你想要一個高級java開發人員&#xff0c;還是需要知道其機制&#xff0c;所謂不僅要會用還要知道其原理這樣才能用…

北京dns服務器ip地址_什么是DNS? 域名系統,DNS服務器和IP地址概念介紹

北京dns服務器ip地址介紹 (Introduction) By the end of this article, you should have a better understanding of:在本文末尾&#xff0c;您應該對以下內容有更好的了解&#xff1a; What DNS is and what it does 什么是DNS及其作用 What DNS servers do DNS服務器做什么 …

767. 重構字符串

767. 重構字符串 給定一個字符串S&#xff0c;檢查是否能重新排布其中的字母&#xff0c;使得兩相鄰的字符不同。 若可行&#xff0c;輸出任意可行的結果。若不可行&#xff0c;返回空字符串。 示例 1: 輸入: S “aab” 輸出: “aba” 示例 2: 輸入: S “aaab” 輸出: “…

長生生物狂犬病疫苗造假

這兩天暴發的長生生物狂犬病疫苗造假案真是很厲害&#xff0c;世人都說投資不過山海關還真有一定道理。 市場上長生生物的狂犬病疫苗約占1/4左右&#xff0c;是一個非常大的用量。 你別說&#xff0c;疫苗真的是非常適合造假&#xff1a; 1. 狂犬病有一定潛伏期&#xff0c;幾天…

小程序 雜記

調試打印測試的方法&#xff1a; 方法1、顯示提示框 &#xff08;微信自帶的API&#xff09; wx.showToast({title: 成功,icon: success,duration: 2000 }) 方法2、js的console.log()方法 //test.js Page({onLoad: function(option){console.log(option.query)} }) wx.showToa…

使用fetch封裝ajax_如何使用Fetch在JavaScript中進行AJAX調用

使用fetch封裝ajaxI will be sharing bite sized learnings about JavaScript regularly in this series. Well cover JS fundamentals, browsers, DOM, system design, domain architecture and frameworks. 在本系列中&#xff0c;我將定期分享有關JavaScript的小知識。 我們…

RxJS筆記

RxJS 《深入淺出RxJS》讀書筆記遺留問題 Observable的HOT與COLD對應的實際場景&#xff0c;以及在編碼中的體現chapter1 html部分 測試你對時間的感覺按住我一秒鐘然后松手你的時間&#xff1a;毫秒jquery實現 var time new Date().getTime(); $("#hold-me").moused…