[LeetCode]House Robber

来源:互联网 发布:大数据ppt模板 编辑:程序博客网 时间:2024/06/01 11:28
解题思路:
动态规划问题,只有一个限制条件,一维,easy

边界条件:n = 0 , income = 0; n = 1, income = nums[0]; n = 2, income =max( nums[0], nums[1])
前条件:n >= 2
不变式:income[i] = max{ income[i-1], income[i-2] + nums[i] }

结束条件:遍历到最后 n  


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



0 0
原创粉丝点击