LeetCode 198

https://leetcode.cn/problems/house-robber/description/

难度:中等

状态转移:

f[i + 2] = max(f[i + 1], f[i] + nums[i]);

时间复杂度:O(n)。其中 n 为 nums 的长度。

空间复杂度:O(n)。

class Solution {
public:
    int rob(vector<int>& nums) {
        int n = nums.size();
        vector<int> f(n + 2);
        for (int i = 0; i < n; i++) {
            f[i + 2] = max(f[i + 1], f[i] + nums[i]);
        }
        return f[n + 1];
    }
};