class Solution {
public:
    int rob(vector<int>& nums) {
        int n = nums.size();
        int f0 = 0, f1 = 0, f2 = 0;
        for (int x : nums) {
            f2 = max(f1, f0 + x);
            f0 = f1;
            f1 = f2;
        }
        return f1;

        // int n = nums.size();
        // vector<int> dp(n + 2);
        // for (int i = 0; i < n; i++) {
        //     dp[i + 2] = max(dp[i + 1], dp[i] + nums[i]);
        // }
        // return dp[n + 1];
    }
};