198. 打家劫舍

198. 打家劫舍


题目链接:198. 打家劫舍

代码如下:

//动态规划
//公式:dp[i]=max(dp[i−2]+nums[i],dp[i−1])
class Solution {
public:
    int rob(vector<int>& nums) {
        if(nums.size()==0)  return 0;

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

        return dp[nums.size()];
    }
};

你可能感兴趣的:(leetcode,c++)