打家劫舍3

class Solution {

public:

pair<int,int> dfs(TreeNode* root) {

if(!root)return {0,0} ;

pair<int,int> l=dfs(root->left);

pair<int,int> r=dfs(root->right);

int choose=root->val+l.second+r.second;//如果选这个节点,那么他的子节点都不能选

int nochoose=max(l.first,l.second)+max( r.first,r.second);//如果不选,取子节点选与不选时得到的最大值

return {choose,nochoose};

}

int rob(TreeNode* root) {

pair<int,int>res=dfs(root);

return max(res.first,res.second);

}

};

相关推荐
战族狼魂1 小时前
GPT-5.6与Grok 4.5重磅发布
人工智能·算法·大模型·大语言模型
白日焰火11 小时前
基于 OpenSpec 实现规范驱动开发
算法·交互
imuliuliang2 小时前
关于图搜索算法的性能建模与可预测性研究7
算法
ForDreamMusk3 小时前
批量归一化
人工智能·算法·机器学习
山峰哥4 小时前
数据库工程与索引策略实战指南‌
服务器·数据库·sql·oracle·深度优先
Ivanqhz4 小时前
刚体的自由度
人工智能·算法
KaMeidebaby4 小时前
卡梅德生物技术快报|抗体合成:多肽抗体合成工程化方案:Nsp2 保守肽多抗制备与多维度验证
前端·网络·数据库·人工智能·算法
Yang_jie_035 小时前
笔记:数据结构(栈是否使用底指针以及头指针的初始化值)
数据结构·笔记·算法
2301_800895105 小时前
信息安全数学基础复习
算法
爱折腾的小黑牛5 小时前
简记往来批量录入功能的实现:从文本到结构化数据
前端·算法