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

刷代码随想录有感(119):动态规划——打家劫舍III(树形dp)

题干:

代码:

class Solution {
public:vector<int>dp(TreeNode* cur){if(cur == NULL)return vector<int>{0, 0};vector<int> left = dp(cur -> left);vector<int> right = dp(cur -> right);//偷int val1 = cur -> val + left[0] + right[0];//不偷int val2 = max(left[0], left[1]) + max(right[0], right[1]);return {val2, val1}; }int rob(TreeNode* root) {vector<int>res = dp(root);return max(res[0], res[1]);}
};

使用一个长度为2的数组,记录当前节点偷与不偷所得到的的最大金钱。

dp数组以及下标的含义:下标为0记录不偷该节点所得到的的最大金钱,下标为1记录偷该节点所得到的的最大金钱。

递归顺序采用后序,即左-右-中,从下往上推。

http://www.lryc.cn/news/385023.html

相关文章:

  • vivado CARRY_REMAP、CASCADE_HEIGHT
  • Ubuntu磁盘分区和挂载 虚拟机扩容 逻辑卷的创建和扩容保姆及教程
  • 【附精彩文章合辑】哈佛辍学小哥的创业经历【挑战英伟达!00 后哈佛辍学小哥研发史上最快 AI 芯片,比 H100 快 20 倍!】
  • Oracle CPU使用率过高问题处理
  • pyqt的QWidgetList如何多选?如何按下Ctrl多选?
  • 【电路笔记】-MOSFET放大器
  • Ubuntu 20.04安装显卡驱动、CUDA、Pytorch(2024.06最新)
  • wpf 附加属性 RegisterAttached 内容属性
  • laravel8框架windows下安装运行
  • 如何快速判断IP被墙
  • vitest-前端单元测试
  • Redis 7.x 系列【9】数据类型之自动排重集合(Set)
  • 【LeetCode】每日一题:反转链表
  • 使用Spring Boot创建自定义Starter
  • cmd设置编码为utf8
  • 一次关于k8s的node节点NotReady的故障排查
  • Java变量与标识符
  • AWS无服务器 应用程序开发—第十七章 AWS用户池案例
  • java中的枚举
  • 各种开发语言运行时占用内存情况比较
  • 【基础知识10】label与input标签
  • 【SDV让汽车架构“和而不同”】
  • 面试经验分享 | 驻场安全服务工程师面试
  • SpringBoot 学习笔记
  • Android 13 为应用创建快捷方式
  • PTA—C语言期末复习(选择题)
  • 基于STM32的智能家用空气净化系统
  • 计算机图形学入门18:阴影映射
  • 电机应用相关名词介绍
  • 哈尔滨等保测评解读