House Robber II LeetCode solution in Java

1
class Solution {
2
public int rob(int[] nums) {
3
if (nums.length == 1) {
4
return nums[0];
5
}
6
int[] t = new int[nums.length];
7
for (int i = 0; i < t.length; i++) {
8
t[i] = -1;
9
}
10
int[] k = new int[nums.length];
11
for (int i = 0; i < k.length; i++) {
12
k[i] = -1;
13
}
14
return Math.max(helper(nums, 0, 0, t), helper(nums, 1, 1, k));
15
}
16

17
static int helper(int[] nums, int i, int start, int[] t) {
18
if (start == 0 && i == nums.length - 2) {
19
return nums[i];
20
}
21
if (start == 1 && i == nums.length - 1) {
22
return nums[i];
23
}
24
if (start == 0 && i >= nums.length - 1) {
25
return 0;
26
}
27
if (start == 1 && i >= nums.length) {
28
return 0;
29
}
30
if (t[i] != -1) {
31
return t[i];
32
}
33
int pick = nums[i] + helper(nums, i + 2, start, t);
34
int notpick = helper(nums, i + 1, start, t);
35
t[i] = Math.max(pick, notpick);
36
return t[i];
37
}
38
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0