File tree Expand file tree Collapse file tree 1 file changed +16
-16
lines changed Expand file tree Collapse file tree 1 file changed +16
-16
lines changed Original file line number Diff line number Diff line change 1
1
class Solution {
2
2
public:
3
3
int rob (vector<int >& nums) {
4
- vector<int > dp;
5
-
6
- for (int i = 0 ; i < nums.size () + 3 ; i++){
7
- dp.push_back (0 );
4
+ int n = nums.size ();
5
+
6
+ if (n == 0 ) return 0 ;
7
+ if (n == 1 ) return nums[0 ];
8
+ if (n == 2 ) return max (nums[0 ], nums[1 ]);
9
+
10
+ int prev2 = nums[0 ];
11
+ int prev1 = max (nums[0 ], nums[1 ]);
12
+
13
+
14
+ for (int i = 2 ; i < n; i++){
15
+ int curr = max (prev1, prev2 + nums[i]);
16
+ prev2 = prev1;
17
+ prev1 = curr;
8
18
}
9
-
10
- for (int i = nums.size ()-1 ; i >= 0 ; i--){
11
- if (dp[i+2 ] + nums[i] > dp[i+3 ] + nums[i])
12
- dp[i] = dp[i+2 ] + nums[i];
13
- else
14
- dp[i] = dp[i+3 ] + nums[i];
15
- }
16
-
17
- if (dp[0 ] > dp[1 ])
18
- return dp[0 ];
19
- else
20
- return dp[1 ];
19
+
20
+ return prev1;
21
21
}
22
22
};
You can’t perform that action at this time.
0 commit comments