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 55class 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}
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