int rob(vector<int>& nums) {
if(nums.size()<=1) return nums.empty()?0:nums[0];
vector<int> dp={nums[0],max(nums[0],nums[1])};
for(int i=2;i<nums.size();i++){
dp.push_back(max(dp[i-2]+nums[i],dp[i-1]));
}
return dp.back();
}
int rob(vector<int> &num) {
int a=0,b=0;
for(int i=0;i<num.size();i++){
if(i%2==0){
a+=num[i];
a=max(a,b);
}else{
b+=num[i];
b=max(a,b);
}
}
return max(a, b);
}
int rob(vector<int> &num) {
int a=0,b=0;
for(int i=0;i<num.size();i++){
int m=a,n=b;
a=n+num[i];
b=max(m,n);
}
return max(a, b);
}