Skip to content

Commit f6027a7

Browse files
committed
House Robber II & Type
1 parent 7f78184 commit f6027a7

File tree

2 files changed

+36
-4
lines changed

2 files changed

+36
-4
lines changed

binary-tree-level-order-traversal/TonyKim9401.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
class Solution {
66
private List<List<Integer>> output = new ArrayList<>();
77
public List<List<Integer>> levelOrder(TreeNode root) {
8-
dsf(0, root);
8+
dfs(0, root);
99
return output;
1010
}
1111

12-
private void dsf(int level, TreeNode node) {
12+
private void dfs(int level, TreeNode node) {
1313
if (node == null) return;
1414

1515
if (output.size() == level) {
@@ -20,7 +20,7 @@ private void dsf(int level, TreeNode node) {
2020
output.get(level).add(node.val);
2121
}
2222
level += 1;
23-
dsf(level, node.left);
24-
dsf(level, node.right);
23+
dfs(level, node.left);
24+
dfs(level, node.right);
2525
}
2626
}

house-robber-ii/TonyKim9401.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// TC: O(n)
2+
// visit all nums at least once
3+
// SC: O(1)
4+
// only constant memory space required
5+
class Solution {
6+
public int rob(int[] nums) {
7+
if (nums.length == 1) return nums[0];
8+
9+
int prev = 0;
10+
int post = 0;
11+
int output1 = 0;
12+
13+
for (int i = 0; i < nums.length - 1; i++) {
14+
int temp = prev;
15+
prev = Math.max(post + nums[i], prev);
16+
post = temp;
17+
}
18+
output1 = prev;
19+
20+
prev = 0;
21+
post = 0;
22+
int output2 = 0;
23+
for (int i = 1; i < nums.length; i++) {
24+
int temp = prev;
25+
prev = Math.max(post + nums[i], prev);
26+
post = temp;
27+
}
28+
output2 = prev;
29+
30+
return Math.max(output1, output2);
31+
}
32+
}

0 commit comments

Comments
 (0)