Skip to content

Commit 9d968e7

Browse files
committed
#265 House Robber II
1 parent d2e646c commit 9d968e7

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

house-robber-ii/forest000014.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/*
2+
# Time Complexity: O(n)
3+
# Space Complexity: O(n)
4+
*/
5+
class Solution {
6+
public int rob(int[] nums) {
7+
int n = nums.length;
8+
if (n == 1) return nums[0];
9+
10+
int[][][] dp = new int[n][2][2];
11+
12+
dp[0][0][0] = 0;
13+
dp[0][0][1] = 0;
14+
dp[0][1][0] = 0; //
15+
dp[0][1][1] = nums[0];
16+
for (int i = 1; i < n - 1; i++) {
17+
dp[i][0][0] = Math.max(dp[i - 1][0][0], dp[i - 1][1][0]);
18+
dp[i][0][1] = Math.max(dp[i - 1][0][1], dp[i - 1][1][1]);
19+
dp[i][1][0] = dp[i - 1][0][0] + nums[i];
20+
dp[i][1][1] = dp[i - 1][0][1] + nums[i];
21+
}
22+
23+
dp[n - 1][0][0] = Math.max(dp[n - 2][0][0], dp[n - 2][1][0]);
24+
dp[n - 1][0][1] = Math.max(dp[n - 2][0][1], dp[n - 2][1][1]);
25+
dp[n - 1][1][0] = dp[n - 2][0][0] + nums[n - 1];
26+
dp[n - 1][1][1] = -1;
27+
28+
return Math.max(Math.max(dp[n - 1][0][0], dp[n - 1][0][1]), dp[n - 1][1][0]);
29+
}
30+
}

0 commit comments

Comments
 (0)