diff --git a/solution/1700-1799/1774.Closest Dessert Cost/README_EN.md b/solution/1700-1799/1774.Closest Dessert Cost/README_EN.md index 94585d5a4c482..0851b86ca71be 100644 --- a/solution/1700-1799/1774.Closest Dessert Cost/README_EN.md +++ b/solution/1700-1799/1774.Closest Dessert Cost/README_EN.md @@ -238,6 +238,32 @@ func abs(x int) int { } ``` +### **JavaScript** + +```js +const closestCost = function (baseCosts, toppingCosts, target) { + let closestDessertCost = -Infinity; + function dfs(dessertCost, j) { + const tarCurrDiff = Math.abs(target - dessertCost); + const tarCloseDiff = Math.abs(target - closestDessertCost); + if (tarCurrDiff < tarCloseDiff) { + closestDessertCost = dessertCost; + } else if (tarCurrDiff === tarCloseDiff && dessertCost < closestDessertCost) { + closestDessertCost = dessertCost; + } + if (dessertCost > target) return; + if (j === toppingCosts.length) return; + for (let count = 0; count <= 2; count++) { + dfs(dessertCost + count * toppingCosts[j], j + 1); + } + } + for (let i = 0; i < baseCosts.length; i++) { + dfs(baseCosts[i], 0); + } + return closestDessertCost; +}; +``` + ### **...** ```