House Robber II LeetCode solution in JavaScript

1
var rob = function (nums) {
2
let dp = [];
3
dp[0] = [0, 0];
4
dp[1] = [nums[0], 0];
5

6
for (let i = 2; i <= nums.length; i++) {
7
let val = nums[i - 1];
8

9
let rob = dp[i - 2][0] + val;
10
let dont = dp[i - 1][0];
11
let noFirst = dp[i - 2][1] + val;
12

13
let best = rob >= dont ? rob : dont;
14

15
if (dp[i - 1][1] > noFirst) noFirst = dp[i - 1][1];
16

17
if (i != nums.length) {
18
dp[i] = [best, noFirst];
19
} else {
20
dp[i] = [dont, noFirst];
21
}
22
}
23
return dp[nums.length][0] >= dp[nums.length][1]
24
? dp[nums.length][0]
25
: dp[nums.length][1];
26
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0