LeetCode No.337. House Robber III
来源:互联网 发布:小学古诗大全软件 编辑:程序博客网 时间:2024/05/21 05:22
1. 题目描述
The thief has found himself a new place for his thievery again. There is only one entrance to this area, called the “root.” Besides the root, each house has one and only one parent house. After a tour, the smart thief realized that “all houses in this place forms a binary tree”. It will automatically contact the police if two directly-linked houses were broken into on the same night.
Determine the maximum amount of money the thief can rob tonight without alerting the police.
Example 1:
3 / \ 2 3 \ \ 3 1
Maximum amount of money the thief can rob = 3 + 3 + 1 = 7.
Example 2:
3 / \ 4 5 / \ \ 1 3 1
Maximum amount of money the thief can rob = 4 + 5 = 9.
2. 思路
题目说明提到不能同时偷窃相邻的两间房间。
那么最大的偷窃为 选取根节点的, 不选取根节点的。
详细请参见源代码。
3. 代码及复杂度分析
class Solution {public: int rob(TreeNode* root) { vector<int> whole_rob = CurrRob(root); return max(whole_rob[0], whole_rob[1]); }private: vector<int> CurrRob(TreeNode * root) { vector<int> ret(2, 0); if (root == nullptr) return ret; vector<int> left_rob = CurrRob(root->left); vector<int> right_rob = CurrRob(root->right); ret[0] = max(left_rob[0], left_rob[1]) + max(right_rob[0], right_rob[1]); // without rob root ret[1] = root->val + left_rob[0] + right_rob[0];// rob root return ret; }};
4. 参考资料
- https://leetcode.com/discuss/91899/step-by-step-tackling-of-the-problem
0 0
- LeetCode No.337. House Robber III
- [leetcode] 337. House Robber III
- LeetCode#337. House Robber III
- LeetCode *** 337. House Robber III
- [leetcode]337. House Robber III
- LeetCode-337. House Robber III
- [leetcode]337. House Robber III
- LeetCode-337.House Robber III
- LeetCode 337. House Robber III
- Leetcode 337. House Robber III
- leetcode 337. House Robber III
- LeetCode - 337. House Robber III
- 【LeetCode】337. House Robber III
- 【leetcode】337. House Robber III
- [leetcode] 337. House Robber III
- LeetCode 337. House Robber III
- 【LeetCode】337. House Robber III
- LeetCode 337. House Robber III
- Memcached实现内存缓存
- Spring技术内幕之IOC容器的实现(01)-IOC容器初始化过程
- MD5 加密算法详细介绍
- JSON真的比XML好很多吗?
- openlayers入门之使用openlayers描述车辆运动轨迹
- LeetCode No.337. House Robber III
- Leetcode 191. Number of 1 Bits
- 一,http_python服务器
- 逗号表达式
- ABAP中使用for all entries in小结
- 单例模式的应用
- 很好的debug方式取代printf满天飞
- Java查找工程下继承了某父类的文件
- android 4.4 支持透明状态栏和透明导航栏