leetcode 198. 打家劫舍

2023.8.19

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

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

​​​​​​​

代码如下:

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()];
    }
};
相关推荐
happyprince17 小时前
03-深刻观-CodeX哲学与升华(源码)
算法·ai编程
不会打球的王子17 小时前
Day 27:迁移学习与微调 — 站在巨人的肩膀上
算法
数模竞赛Paid answer18 小时前
2025年中青杯数学建模A题康养城市建设求解全过程论文及程序
算法·数学建模·数据分析·中青杯
网安蟹佬霸18 小时前
密码学安全实战:从加密原理到哈希破解的完整攻防指南
网络·算法·安全·web安全·开源·密码学·哈希算法
yangmu320318 小时前
深度解析:短视频是如何通过“算法+神经机制”劫持用户时间的?
算法
LuminousCPP18 小时前
栈和队列专题(四):LeetCode 232. 用栈实现队列|双栈分工 + 按需迁移 + 摊还 O(1)
c语言·数据结构·笔记·算法·leetcode
纪念 22918 小时前
二叉树排序讲解(一)
数据结构
tudousisi22219 小时前
01背包8.21
数据结构·算法
ZJU_统一阿萨姆19 小时前
【算子开发】Reduction算子完全指南
人工智能·算法·语言模型
青 春 记 忆19 小时前
LeetCode 155. 最小栈|Python 解法详解
开发语言·python·leetcode