Search⌘ K
AI Features

IPO

Explore strategies to maximize an investor's final capital by selecting up to k profitable projects under capital constraints. Learn how to apply heaps to efficiently solve this optimization problem, understand problem requirements, and implement solutions in a hands-on coding environment.

Statement

An investor is looking to maximize their capital by undertaking a set of profitable projects. Due to limited time and resources, they can complete at most k distinct projects.

There are nn available projects. Each project i has:

  • A profit of profits[i] earned upon completion.

  • A minimum capital requirement of capital[i] needed to start the project.

The investor starts with an initial capital of c. After completing a project, its profit is immediately added to the investor's current capital.

The goal is to choose up to k different projects in a way that maximizes the investor’s final capital. Return the maximum capital achievable after completing these projects.

It is guaranteed that the answer fits within a 32-bit signed integer.

Constraints:

  • 11 \leq k 103\leq 10^3

  • 00 \leq c \leq 10910^9

  • n==n== profits.length

  • n==n== capitals.length

  • 1n1031 \leq n \leq 10^3

  • 00 \leqprofits[i] 104\leq 10^4

  • 00 \leq capitals[i] 109\leq 10^9

Examples

canvasAnimation-image
1 / 3

Understand the problem

Let’s take a moment to make sure you’ve correctly understood the problem. The quiz below helps you check if you’re solving the correct problem:

IPO

1.

What is the maximum capital for the following input?

k =2= 2

c =1= 1

capitals =[1,2,3]= [1, 2, 3]

profits =[2,3,5]= [2, 3, 5]

A.

66

B.

55

C.

88

D.

1010


1 / 4

Figure it out!

We have a game for you to play. Rearrange the logical building blocks to develop a clearer understanding of how to solve this problem.

Sequence - Vertical
Drag and drop the cards to rearrange them in the correct sequence.

1
2
3
4
5
6

Try it yourself

Implement your solution in the following coding playground.

JavaScript
usercode > Solution.js
import { MinHeap, MaxHeap } from "./Heap.js";
/* The following definition is for MinHeap.
You can use the same methods for MaxHeap.
class MinHeap {
size(); // return number of elements
peek(); // return top element without removing
push(val); // insert element
pop(); // remove and return top element
}
*/
function maximumCapital(c, k, capitals, profits){
// Replace this placeholder return statement with your code
return -1
}
export{maximumCapital};
IPO