[LeetCode]502. IPO

来源:互联网 发布:js提示return非法 编辑:程序博客网 时间:2024/09/21 08:15

https://leetcode.com/problems/ipo/?tab=Description

k次操作,每次操作需要capital,收益profit,求最后总capital



两个priorityQueue,一个capital升序排列,一个profit降序排列,用这两个找到满足当前W的最大profit

public class Solution {    public int findMaximizedCapital(int k, int W, int[] Profits, int[] Capital) {        PriorityQueue<int[]> pqCap = new PriorityQueue<>((a, b) -> (a[0] - b[0]));        PriorityQueue<int[]> pqPro = new PriorityQueue<>((a, b) -> (b[1] - a[1]));        for (int i = 0; i < Profits.length; i++) {            pqCap.add(new int[] {Capital[i], Profits[i]});        }        for (int i = 0; i < k; i++) {            while (!pqCap.isEmpty() && pqCap.peek()[0] <= W) {                pqPro.add(pqCap.poll());            }            if (pqPro.isEmpty()) {                break;            }            W += pqPro.poll()[1];        }        return W;    }}


0 0
原创粉丝点击