198. House Robber (dp)

来源:互联网 发布:北大燕京学堂知乎 编辑:程序博客网 时间:2024/05/21 12:32

https://leetcode.com/problems/house-robber/discuss/

题目:每个房间里面有一定数目的钱,相邻房间不能同时被偷,求最多能偷多少钱。

思路:dp,dp[i]=max(dp[i-1],dp[x-2]+nums[i])

class Solution {public:    int rob(vector<int>& nums) {        if(nums.size()==0) return 0;        int len=nums.size();        int dp[len+1];        dp[0]=0;dp[1]=nums[0];        for(int x=1;x<len;x++){            dp[x+1]=max(dp[x],dp[x-1]+nums[x]);        }        return dp[len];    }};
原创粉丝点击