class Solution {
public:
int rob(vector<int>& nums) {
if(nums.empty()){
return 0;
}
int n = nums.size();
if(n == 1){
return nums[0];
}
vector<int>dp(n);
dp[0] = nums[0];
dp[1] = max(nums[0],nums[1]);
for(int i = 2;i < n;i++){
dp[i] = max(dp[i-1],dp[i-2]+nums[i]);
}
return dp[n-1];
}
};
class Solution {
public:
int rob(vector<int>& nums) {
if(nums.empty()){
return 0;
}
int n = nums.size();
if(n == 1){
return nums[0];
}
int sum;
int a = nums[0];
int b = max(nums[0],nums[1]);
for(int i = 2;i < n;i++){
sum = max(b,a+nums[i]);
a = b;
b = sum;
}
return b;
}
};