leetcode 198. 打家劫舍

2023.8.19

打劫问题是经典的动态规划问题。先设一个dp数组,dp[i]的含义为:前 i 个房屋能盗取的最高金额。 每间房屋无非就是偷,或者不偷这两种情况,于是可以写出递推公式: ​​​​​​​ dp[i] = max(dp[i-2]+nums[i-1] , dp[i-1]);

由递推公式发现需要初始化dp[0]和dp[1],初始化完之后再对房屋进行遍历赋值即可。附上我的草稿图以供参考:

​​​​​​​

代码如下:

cpp 复制代码
class Solution {
public:
    int rob(vector<int>& nums) {
        vector<int> dp(nums.size()+1);
        dp[0] = 0;
        dp[1] = nums[0];
        for(int i=2; i<=nums.size(); i++)
        {
            dp[i] = max(dp[i-2]+nums[i-1] , dp[i-1]);
        }
        return dp[nums.size()];
    }
};
相关推荐
优宁维生物29 分钟前
DNA 提取的基础方法
人工智能·算法
@Aurora.40 分钟前
优选算法【专题二:滑动窗口】
算法
小石头 100861 小时前
【Java】String类(超级详细!!!)
java·开发语言·算法
.柒宇.1 小时前
力扣hot100---42.接雨水(java版)
java·算法·leetcode
youngee111 小时前
hot100-41验证二叉搜索树
算法
迈巴赫车主1 小时前
蓝桥杯20534爆破 java
java·数据结构·算法·职场和发展·蓝桥杯
坚持就完事了1 小时前
数据结构之链表
数据结构·python·算法·链表
c#上位机1 小时前
halcon图像去噪—均值滤波
图像处理·算法·均值算法·halcon
曾几何时`2 小时前
347. 前 K 个高频元素 分别使用sort和priority_queue 对哈希结构自定义排序
算法
小李小李快乐不已2 小时前
图论理论基础(3)
数据结构·c++·算法·图论