当前位置:首页 > 编程笔记 > 正文
已解决

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

来自网友在路上 160860提问 提问时间:2023-09-22 15:40:41阅读次数: 60

最佳答案 问答题库608位专家为你答疑解惑

2023-09-18每日一题

一、题目编号

337. 打家劫舍 III

二、题目链接

点击跳转到题目位置

三、题目描述

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

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

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

示例 1:
在这里插入图片描述

示例 2:
在这里插入图片描述
提示:

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

四、解题代码

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题目

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"2023-09-18 LeetCode每日一题(打家劫舍 III)":http://eshow365.cn/6-11501-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!