2023-09-18 LeetCode每日一题(打家劫舍 III)

2023-09-18每日一题

一、题目编号

复制代码
337. 打家劫舍 III

二、题目链接

点击跳转到题目位置

三、题目描述

小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为 root 。

除了 root 之外,每栋房子有且只有一个"父"房子与之相连。一番侦察之后,聪明的小偷意识到"这个地方的所有房屋的排列类似于一棵二叉树"。 如果 两个直接相连的房子在同一天晚上被打劫 ,房屋将自动报警。

给定二叉树的 root 。返回 在不触动警报的情况下 ,小偷能够盗取的最高金额 。

示例 1:

示例 2:

提示:

  • 树的节点数在 [1, 104] 范围内
  • 0 <= Node.val <= 104

四、解题代码

cpp 复制代码
class Solution {
public:
    unordered_map <TreeNode*, int> f, g;

    void dfs(TreeNode* node) {
        if (!node) {
            return;
        }
        dfs(node->left);
        dfs(node->right);
        f[node] = node->val + g[node->left] + g[node->right];
        g[node] = max(f[node->left], g[node->left]) + max(f[node->right], g[node->right]);
    }

    int rob(TreeNode* root) {
        dfs(root);
        return max(f[root], g[root]);
    }
};

五、解题思路

(1) 树型dp题目

相关推荐
CoovallyAIHub3 分钟前
CLIP, DINO等多模型融合DreamSim,让电脑“看懂”图片有多像!模型融合成为热门!
深度学习·算法·计算机视觉
Giser探索家9 分钟前
遥感卫星升轨 / 降轨技术解析:对图像光照、对比度的影响及工程化应用
大数据·人工智能·算法·安全·计算机视觉·分类
仰泳的熊猫14 分钟前
LeetCode:700. 二叉搜索树中的搜索
数据结构·c++·算法·leetcode
嵌入式-老费15 分钟前
Easyx图形库应用(图形旋转)
算法
代码充电宝21 分钟前
LeetCode 算法题【中等】189. 轮转数组
java·算法·leetcode·职场和发展·数组
微笑尅乐1 小时前
从递归到迭代吃透树的层次——力扣104.二叉树的最大深度
算法·leetcode·职场和发展
im_AMBER1 小时前
Leetcode 28
算法·leetcode
杰 .1 小时前
C++ Hash
数据结构·c++·哈希算法
让我们一起加油好吗1 小时前
【基础算法】多源 BFS
c++·算法·bfs·宽度优先·多源bfs
B站计算机毕业设计之家1 小时前
深度学习实战:python动物识别分类检测系统 计算机视觉 Django框架 CNN算法 深度学习 卷积神经网络 TensorFlow 毕业设计(建议收藏)✅
python·深度学习·算法·计算机视觉·分类·毕业设计·动物识别