Minimum Garden Perimeter to Collect Enough Apples LeetCode solution in JavaScript

1
/**
2
* @param {number} neededApples
3
* @return {number}
4
*/
5
var minimumPerimeter = function (neededApples) {
6
let start = 2,
7
n = 1,
8
dp = [0];
9

10
while (true) {
11
let cur = start,
12
res = dp[n - 1];
13

14
//Add the X and Y axis apples multiplied with 4
15
res += (cur + cur - n) * 4;
16

17
// Add the interior apples using and AP formula of ( n - 1 ) / 2 * (2a + ( n-1 ) * d ) & multiplying it by 8 as count is 8
18
res += ((n - 1) / 2) * (2 * (cur - 1) + (n - 2) * -1) * 8;
19

20
//Setting the result to DP
21
dp[n] = res;
22

23
//If current state is greater than or equal to needed then return the perimeter
24
if (neededApples <= res) return 8 * n;
25
n++;
26
start += 2;
27
}
28
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0