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

2023-09-18每日一题

一、题目编号

复制代码
337. 打家劫舍 III

二、题目链接

点击跳转到题目位置

三、题目描述

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

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

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

示例 1:

示例 2:

提示:

  • 树的节点数在 1, 10^4^ 范围内
  • 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题目

相关推荐
白狐_7988 分钟前
408数据结构:中缀转后缀与操作符栈容量——真题精讲
前端·javascript·数据结构
2401_8582861115 分钟前
OS82.【Linux】设计线程池
java·linux·运维·服务器·开发语言·算法·线程池
Epiphany.55640 分钟前
找到所有好字符串(记忆化搜索+KMP)(里面含KMP模板,用来入门)
算法
Iruoyaoxh1 小时前
数据结构排序
数据结构
来一碗刘肉面3 小时前
图的基本操作
数据结构
深圳市快瞳科技有限公司3 小时前
个体识别、行为解读、健康管理:多模态宠物AI大模型的场景化落地
人工智能·算法·计算机视觉·大模型·多模态·宠物·宠物ai识别
wangwangmoon_light3 小时前
1.1 灵神题单总结_滑动窗口与双指针
leetcode
liulilittle3 小时前
归一化:激活函数
人工智能·算法·机器学习·llm
Mem0rin4 小时前
前缀和:一维与二维
数据结构·算法
小趴蔡ha5 小时前
12 K-Means 聚类入门:没有标签如何发现数据分组
算法·kmeans·聚类