8.23 - hard - 97

502. IPO

手擼成功,考慮到排序的話,可以多考慮考慮heap。

class Solution(object):
    def findMaximizedCapital(self, k, W, Profits, Capital):
        """
        :type k: int
        :type W: int
        :type Profits: List[int]
        :type Capital: List[int]
        :rtype: int
        """
        
        # init - add all project of capital v less than W into heap
        capital_heap = []
        for i in range(len(Profits)):
            heapq.heappush(capital_heap, [Capital[i], Profits[i]])
        
        heap = []
        res = 0
        while k > 0 and (capital_heap or heap):
            
            while capital_heap and capital_heap[0][0] <= W:
                c, p= heapq.heappop(capital_heap)
                heapq.heappush(heap, [-p, c])
            
            if not heap:
                break
            val, cost = heapq.heappop(heap)
            val = -val
            W = W + val
            k -= 1
        
        return W
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,428評論 25 708
  • 概述 排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    蟻前閱讀 5,222評論 0 52
  • 概述:排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    每天刷兩次牙閱讀 3,746評論 0 15
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 將一個記錄插入到已排序好...
    依依玖玥閱讀 1,285評論 0 2
  • 在有些新聞微博的下面,有很多負面的評論,說惡心的,說敗類的,都有。還被很多人點贊頂?shù)搅松厦妗?有的人和他據(jù)理力爭,...
    MarvinHu閱讀 276評論 0 1