(M)DFS: 337. House Robber III
来源:互联网 发布:美国人的零食知乎 编辑:程序博客网 时间:2024/06/08 05:02
DFS,给每个结点增加一个两元素的数组。res[0] 表示不加上当前结点值的最大值,res[1] 表示加上当前结点值的最大值。那么对于 res[0] 来说,其值等于子结点数组元素的较大值,因为此时可以加上子结点,也可以不加上子结点,选其中较大值。但是对于 res[1] 来说,就不行了,因为加上当前结点值的时候,必须不能加上子结点的值,否则警报会响,因此,只能算上子结点的 res[0]。
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution { vector<int> getMoney(TreeNode* node) { vector<int> ret(2, 0); if(!node) return ret; vector<int> lRet = getMoney(node->left); vector<int> rRet = getMoney(node->right); ret[0] = lRet[1] + rRet[1] + node->val; ret[1] = max(lRet[0], lRet[1]) + max(rRet[0], rRet[1]); return ret; } public: int rob(TreeNode* root) { vector<int> ret = getMoney(root); return max(ret[0], ret[1]); } };
阅读全文
0 0
- (M)DFS: 337. House Robber III
- 337. House Robber III 【M】【vip】
- 337. House Robber III
- 337. House Robber III
- 337. House Robber III
- 337. House Robber III
- 337. House Robber III
- 337. House Robber III
- 337. House Robber III
- 337. House Robber III
- 337. House Robber III
- 337. House Robber III
- 337. House Robber III
- 337. House Robber III
- 337. House Robber III
- 337. House Robber III
- 337. House Robber III
- 337. House Robber III
- Java运行时内存划分
- HDU
- java集合判断出现空指针异常
- read()/write()的生命旅程-系列
- Codeforces Round #393 (Div. 2)
- (M)DFS: 337. House Robber III
- HDU 5578 Friendship of Frog 暴力
- 自己写的java 2048,请大家指教
- 消息平台架构设计
- HTML5 video 视频标签 常用属性
- Python 信号(signal)
- leetcode 540. Single Element in a Sorted Array
- java类中获取tomcat路径
- RESTful API 设计指南