# LeetCode: Closest Dessert Cost Solution

## Approach

Exhausive search through all possibilities of topping

(0, 1, 2)

for each## Implementation

1function recursion(cost, toppingCosts, toppingCostsIdx, target, ref) {2 if (toppingCostsIdx === toppingCosts.length) {3 const diff = Math.abs(target - cost)4 if (diff <= ref.minDiff) {5 ref.cost = diff === ref.minDiff ? Math.min(ref.cost, cost) : cost6 ref.minDiff = diff7 }8 } else {9 recursion(10 cost + toppingCosts[toppingCostsIdx] * 0,11 toppingCosts,12 toppingCostsIdx + 1,13 target,14 ref15 )16 recursion(17 cost + toppingCosts[toppingCostsIdx] * 1,18 toppingCosts,19 toppingCostsIdx + 1,20 target,21 ref22 )23 recursion(24 cost + toppingCosts[toppingCostsIdx] * 2,25 toppingCosts,26 toppingCostsIdx + 1,27 target,28 ref29 )30 }31}3233/**34 * @param {number[]} baseCosts35 * @param {number[]} toppingCosts36 * @param {number} target37 * @return {number}38 */39var closestCost = function (baseCosts, toppingCosts, target) {40 const ref = { minDiff: Infinity, cost: Infinity }41 for (const baseCost of baseCosts) {42 recursion(baseCost, toppingCosts, 0, target, ref)43 }44 return ref.cost45}

## Comments

Loading comments...

## Tags

leetcode

recursion

greedy

## Apply and earn a $2,500 bonus once you're hired on your first job!

Clients from the Fortune 500 to Silicon Valley startups

Choose your own rate, get paid on time

From hourly, part-time, to full-time positions

Flexible remote working environment

A lot of open JavaScript jobs!!

**Fact corner:** Referred talent are 5x more likely to pass the Toptal screening process than the average applicant.

**Still hesitate?** Read HoningJS author's guide on dealing with Toptal interview process.

## Next Post

LeetCode: Count Items Matching A Rule

Feb 28, 2021