当前位置: 首页 > article >正文

代码随想录算法【Day39】

Day39

198.打家劫舍
class Solution {
public:
    int rob(vector<int>& nums) {
        if (nums.size() == 0) return 0;
        if (nums.size() == 1) return nums[0];
        vector<int> dp(nums.size());
        dp[0] = nums[0];
        dp[1] = max(nums[0], nums[1]);
        for (int i = 2; i < nums.size(); i++) {
            dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);
        }
        return dp[nums.size() - 1];
    }
};

五部曲

1.dp数组及下标定义:dp[i]:考虑下标i(包括i)以内的房屋,最多可以偷窃的金额为dp[i]。

2.递推公式:dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);

3.初始化:dp[0] 一定是 nums[0],dp[1] = max(nums[0], nums[1]);

4.遍历顺序:dp[i] 是根据dp[i - 2] 和 dp[i - 1] 推导出来的,那么一定是从前到后遍历!

5.数组的数据应该是怎样的:


http://www.kler.cn/a/541574.html

相关文章:

  • 【OneAPI】通过网页预渲染让搜索引擎收录网页
  • Linux --- 如何安装Docker命令并且使用docker安装Mysql【一篇内容直接解决】
  • 仿 RabbitMQ 实现的简易消息队列
  • 【网络安全】服务器安装Docker及拉取镜像教程
  • STM32 HAL库 ADC程序(C语言)
  • 速度超越DeepSeek!Le Chat 1100tok/s闪电回答,ChatGPT 4o和DeepSeek R1被秒杀?
  • MindStudio制作MindSpore TBE算子(二)算子测试
  • 常用的python库-安装与使用
  • YOLO模型缝合实战指南:ECA注意力模块的实现与集成
  • Tria Technologies RFSoC 平台 - 入门指南
  • 2025 年前端开发现状分析:卷疯了还是卷麻了?
  • 【FPGA】模型机下载FPGA设计
  • UE5 如何通过命令行启动游戏工程
  • 【错题本】js事件循环机制下,记录一个意外错误
  • Ada语言的区块链
  • 地平线 3D 目标检测 Bevformer 参考算法-V2.0
  • 怎么查看电脑显存大小(查看电脑配置)
  • OpenGL学习笔记(十二):初级光照:投光物/多光源(平行光、点光源、聚光)
  • JEECGBOOT前端VUE3版本浏览器兼容支持chrome>=76版本方法
  • 虚拟机+Docker配置主机代理和常见配置
  • 如何在 Java 应用中实现数据库的主从复制(读写分离)?请简要描述架构和关键代码实现?
  • Docker 和 Containerd 目录结构及存储机制
  • 基于Springboot和vue的流浪猫狗救助救援系统设计与实现(源码+数据库+文档)
  • kafka消费端之分区分配策略
  • MATLAB中extract 函数用法
  • Ubuntu 如何安装Snipaste切图软件