leetcode 198 House Robber C++

来源:互联网 发布:mp4下载软件 编辑:程序博客网 时间:2024/06/07 13:41

这是我真正意义上理解DP的原理之后解出来的题。


对于第n个房间

如果拿:

那么上一个房间肯定没拿,那就是   maxMoney(n) = 没拿(n-1)+nums[n];

如果没拿:

那么没拿(n) = maxMoney(n-1);



这里我用dp0代表没拿(n-1);

dp1代表maxMoney(n-1);



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


0 0
原创粉丝点击