【力扣-每日一题】337. 打家劫舍 III

cpp 复制代码
class Solution {
public:
    pair<int,int> dfs_rob(TreeNode *root){
        //如果为根节点
        if(root==nullptr)
            return {0,0};
        auto [l,l_n]=dfs_rob(root->left);
        auto [r,r_n]=dfs_rob(root->right);
        int o=l_n+r_n+root->val;//当前节点偷,所获得的利益,子节点不能偷
        int o_n=max(l,l_n)+max(r,r_n);  //当前节点不偷,左右子节点分别返回最大的值
        return {o,o_n};//返回当前节点偷、不偷情况下的最大利益
    }
    int rob(TreeNode* root) {
        auto [l,r]=dfs_rob(root);
        return max(l,r);
    }
};
相关推荐
kingcjh97几秒前
十、RL 算法性能调优指南
深度学习·算法
muls18 分钟前
java面试宝典
java·linux·服务器·网络·算法·操作系统
BieberChen1 小时前
匈牙利匹配算法 (Hungarian Algorithm) 详解
算法
春栀怡铃声1 小时前
常考排序的梳理
数据结构·算法·排序算法
第二只羽毛1 小时前
第六章 图
大数据·数据结构·算法·深度优先·图论·广度优先·宽度优先
csuzhucong1 小时前
puzzle(1052)仙人指路
算法
XiYang-DING2 小时前
【LeetCode】链表 + 快慢指针找中间 + 反转链表 | 2130. 链表最大孪生和
算法·leetcode·链表
Charlie_lll2 小时前
力扣解题-67. 二进制求和
算法·leetcode·职场和发展
Yzzz-F2 小时前
GYM106247B[数论 构造一个数字和因子 使得等于n个因子之和=数字]
算法
CyberMuse2 小时前
欧拉公式(Euler‘s Formula)在信号系统中的应用
算法