File tree Expand file tree Collapse file tree 2 files changed +36
-4
lines changed
binary-tree-level-order-traversal Expand file tree Collapse file tree 2 files changed +36
-4
lines changed Original file line number Diff line number Diff line change 5
5
class Solution {
6
6
private List <List <Integer >> output = new ArrayList <>();
7
7
public List <List <Integer >> levelOrder (TreeNode root ) {
8
- dsf (0 , root );
8
+ dfs (0 , root );
9
9
return output ;
10
10
}
11
11
12
- private void dsf (int level , TreeNode node ) {
12
+ private void dfs (int level , TreeNode node ) {
13
13
if (node == null ) return ;
14
14
15
15
if (output .size () == level ) {
@@ -20,7 +20,7 @@ private void dsf(int level, TreeNode node) {
20
20
output .get (level ).add (node .val );
21
21
}
22
22
level += 1 ;
23
- dsf (level , node .left );
24
- dsf (level , node .right );
23
+ dfs (level , node .left );
24
+ dfs (level , node .right );
25
25
}
26
26
}
Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments