FastPrepMax Profit

Max Profit

IBM logoIBM● HardNEW GRADOA
Learn

Problem statement

Find the maximum profit that can be generated for the given amount of money. As the answer can be rather large, report the answer as maxProfit % (10 ^ 9 + 7) where % denotes modulo operator.

Complete the function maxProfit in the editor.

maxProfit has the following parameters:

  • int[] cost: an array of integers representing the cost of each item
  • int x: the initial amount of money Walker has

int: the maximum profit that can be obtained modulo (10^9+7)

Function

maxProfit(cost: int[], x: int) → int

Examples

Example 1

cost = [3, 4, 1]x = 8return = 7

:)

Example 2

cost = [19, 78, 27, 15, 20]x = 25return = 16

Walker can afford item 4, whose cost is 20 and whose profit is 2^4 = 16. After buying it, only 5 remains, so none of items 0 through 3 can also be purchased. Any combination that excludes item 4 has profit at most 2^0 + 2^1 + 2^2 + 2^3 = 15. Therefore, the maximum profit is 16.

Example 3

cost = [10, 20, 14, 40, 50]x = 70return = 20

Some possible combination of items Walker can buy are: She can buy items 0, 1, and 2 for a cost of 44 and obtain a profit of 2 ^ 0 + 2 ^ 1 + 2 ^ 2 = 7. She can buy items 0 and 4 for a cost of 60 and obtain a profit of 2 ^ 0 + 2 ^ 4 = 17. She can buy items 1 and 4 for a cost of 70 and obtain a profit of 2 ^ 1 + 2 ^ 4 = 18. She can buy items 2 and 4 for a cost of 64 and obtain a profit of 2 ^ 2 + 2 ^ 4 = 20. Out of all the possible combinations, the maximum profit obtained is by buying items 2 and 4 for a cost of 64 to obtain a profit of 20.

Constraints

  • 1 <= n <= 10^5
  • 1 <= cost[i] <= 10^5
  • 0 <= x <= 10^9

More IBM problems

See IBM hiring insights
public int maxProfit(int[] cost, int x) {
  // write your code here
}
cost[3, 4, 1]
x8
expected7
Checking account…