【力扣-每日一题】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);
    }
};
相关推荐
OuO-210 小时前
笔试强训 Day 34:ISBN 号码、kotori 和迷宫、矩阵最长递增路径
java·算法·矩阵
程序喵大人11 小时前
【C++进阶】STL算法与函数对象 - 04 find、count和any_of把查询写成意图
开发语言·c++·算法
豆沙沙包?11 小时前
c++中引用(P7-P11)
java·c++·算法
不会代码的小猴11 小时前
标准模板库(STL)
开发语言·c++·笔记·算法
ZhouDevin11 小时前
算法论文/高效微调4——DoRA:权重分解的低秩适配方法
算法
evans在进步12 小时前
LeetCode 200:岛屿数量——Java DFS 染色法详解
java·leetcode·深度优先
AI探索先锋12 小时前
A* 路径规划:四种算法的进化史-学习
学习·算法
旖旎夜光12 小时前
LeetCode 202:快乐数(双指针问题) —— 题解
数据结构·c++·算法·leetcode·双指针
cpp_250113 小时前
P1113 [USACO02FEB] 杂务
数据结构·c++·算法·动态规划·图论·拓扑排序·洛谷题解
月光船幽幽13 小时前
门控函数SHS阈值与调制机制解析
人工智能·python·算法