美文网首页
打家劫舍3

打家劫舍3

作者: 小幸运Q | 来源:发表于2021-03-26 19:17 被阅读0次

  • 总结:基本上都要两个数据结构,一个记录选,一个记录不选。无后效性只需要管好当前几个就行。

使用map<TreeNode*,int>替代数组作为离散数值容器(还有个好处是null不存在map[null]自动返回0),index-2/-3改成->left->left,->right->left...

  • 使用后序遍历保证两个子节点的解先解出来。

  • 当root点被选中的时候,左右两个次root点一定不被选中,为nothas(root->left)+nothas(root->right)

  • 当root点未被选中的时候,左右两个点可以选中也可以不选中,所以max(has(root->left),nothas(root->left))+max(has(root->left)+nothas(root->right))即可

  • 不再是max(a,b)而是max(a+b)的关系

image.png
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
/**
 * 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 {
public:
    map<TreeNode*,int>nothas;
    map<TreeNode*,int>has;
    void Rob(TreeNode* root){
        if(root==NULL){
            return;
        }
        Rob(root->left);
        Rob(root->right);        
        // choose
        has[root]=nothas[root->left]+nothas[root->right]+root->val;
        // not choose
        nothas[root]=max(has[root->left],nothas[root->left])+max(has[root->right],nothas[root->right]);
    }
    int rob(TreeNode* root) {
        Rob(root);
        return max(has[root],nothas[root]);
    }
};

相关文章

  • 打家劫舍3

    总结:基本上都要两个数据结构,一个记录选,一个记录不选。无后效性只需要管好当前几个就行。 使用map 替代数组作为...

  • leetcode算法题 打家劫舍 系列

    最近“打家劫舍”系列题好像有点火,公众号上都看到推过,于是乎上leetcode看了下。 打家劫舍一共3题,第一题是...

  • 打家劫舍系列 1,2,3

    打家劫舍3https://leetcode-cn.com/problems/house-robber-iii/su...

  • LeetCode-198-打家劫舍

    LeetCode-198-打家劫舍 198. 打家劫舍[https://leetcode-cn.com/probl...

  • 诗歌:小强盗

    小强盗 文/sunshine珊珊 去打家劫舍呀 只劫他一家 去打家劫舍呀 金山不要 银矿不要 去打家劫舍呀 只劫一...

  • 补卡-打家劫舍

    198. 打家劫舍

  • 返回大小姐星级酒店

    华东交大打家劫舍

  • v 的很简单

    打家劫舍看到半部分

  • 打家劫舍

    你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连...

  • 打家劫舍

    题目描述 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋...

网友评论

      本文标题:打家劫舍3

      本文链接:https://www.haomeiwen.com/subject/ueyoqltx.html