Google Interview Question
Anonymous User
2086

You are given two integer arrays:
int[] multiples: the multipliers available in the shop
int[] prices: the corresponding prices for each multiplier
->Both arrays have the same length n, and the i-th multiplier (multiples[i]) costs prices[i] coins to purchase.

You start with:
->0 coins
->A base gain rate of 1 coin per second

When you purchase a multiplier, your coin gain rate is multiplied by that value. For example:

Start: gain = 1x
Buy 3x → gain becomes 3x
Buy 4x → gain becomes 3 × 4 = 12x

You can only make purchases when you have enough coins to afford the multiplier.

Your goal is to purchase all the multipliers, in some order, such that the total time taken to finish all purchases is minimized.

I came up with a dfs solution, it worked but interviewer told me there was an another way to solve it. Do you have any idea?

Please use this example inputs for your solution:

Input:
multiples = [3, 100, 30]
prices = [5, 30, 15]

Output:
[0, 2, 1] // Buy 3x, then 30x, then 100x

Comments (14)