Skip to content

Commit 2f420b8

Browse files
committed
house-robber-ii
1 parent a8b6f51 commit 2f420b8

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

house-robber-ii/byol-han.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* https://leetcode.com/problems/house-robber-ii/submissions/1686583649/
3+
* @param {number[]} nums
4+
* @return {number}
5+
*/
6+
var rob = function (nums) {
7+
if (nums.length === 1) return nums[0];
8+
9+
// Helper to solve the linear house robber problem
10+
function robLinear(houses) {
11+
let prev1 = 0; // dp[i-1]
12+
let prev2 = 0; // dp[i-2]
13+
14+
for (let money of houses) {
15+
let temp = prev1;
16+
prev1 = Math.max(prev1, prev2 + money);
17+
prev2 = temp;
18+
}
19+
20+
return prev1;
21+
}
22+
23+
// Case 1: Exclude last house
24+
let money1 = robLinear(nums.slice(0, nums.length - 1));
25+
// Case 2: Exclude first house
26+
let money2 = robLinear(nums.slice(1));
27+
28+
return Math.max(money1, money2);
29+
};

0 commit comments

Comments
 (0)