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 11class Solution {
22 public:
33 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;
818 }
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;
2121 }
2222 };
You can’t perform that action at this time.
0 commit comments