The following question has been asked in coding test of Atlassian, Cloudera, IBM
People say to use binary Search I can’t see how. Could community please explain it to me and provide with code if possible. This question does not have solution over Internet
You have four input parameters:
Cartridges, Dollars, recycleReward, perksCost.
One has two options:
- Recycle one cartridge and get recycleReward amount of dollars
- Combine one cartridge and perksCost amount to get a perk item.
we need to maximise the perk items one can buy.
ex: 10, 10, 2, 2
Initially there are 10 cartridges, 10 dollars with the person.
If the persone recycles 3 cartridges he has 7 cartridges and 16 dollars (10 initial + 3*2(recycleReward)).
we can combine 7 cartridges and 14 dollars to buy 7 perk items(as each item costs 1 cartridge and 2 dollars(perksCost)).
1<= cartridges, dollars, recycleReward, perksCost <= 10^9;
allowed time : 2s