博客
关于我
LeetCode-Binary Tree Maximum Path Sum
阅读量:799 次
发布时间:2023-01-31

本文共 839 字,大约阅读时间需要 2 分钟。

哎,又是一道主题难以发挥抱负的题目。说到底,写代码之前得先把问题用最简单的方法描述清楚,否则温习看了半天,脑袋还是空空的。

最开始的时候,我把问题搞砸了,试图把最大值和路径和糅合在一起考虑。幸好及时调整了思路,明白了每条路径的最大值由路径值加上路径和决定后,才渐渐找到了出路。这也印证了一个真理:遇到难题时,先把代码写到能运行的程度再继续,这样能及时发现错误,避免赔功勋罪。

以下是针对该问题的解决方案代码:

class Solution {
private:
int res;
public:
int getMax(TreeNode* node) {
if (!node) return 0;
int left = getMax(node->left);
int right = getMax(node->right);
int sum = max(node->val, left + node->val, right + node->val);
if (sum > res) res = sum;
if (left + right + node->val > res) res = left + right + node->val;
return sum;
}
int maxPathSum(TreeNode* root) {
res = INT_MIN;
getMax(root);
return res;
}
};

这个解法施عمال了两个关键点:先获得每条路径的最大值,然后在所有路径中找到总路径和最大的那个。这样分开考虑,问题就迎刃而解了。

代码虽不长,但 reveals了一个重要道理——如果代码超过 50 行就说明思路有问题,及时改正才不虚 ).

转载地址:http://elgyk.baihongyu.com/

你可能感兴趣的文章
Nginx的是什么?干什么用的?
查看>>
Nginx访问控制_登陆权限的控制(http_auth_basic_module)
查看>>
nginx负载均衡和反相代理的配置
查看>>
nginx负载均衡器处理session共享的几种方法(转)
查看>>
nginx负载均衡的5种策略(转载)
查看>>
nginx负载均衡的五种算法
查看>>
nginx转发端口时与导致websocket不生效
查看>>
Nginx运维与实战(二)-Https配置
查看>>
Nginx配置Https证书
查看>>
Nginx配置ssl实现https
查看>>
Nginx配置TCP代理指南
查看>>
Nginx配置——不记录指定文件类型日志
查看>>
nginx配置一、二级域名、多域名对应(api接口、前端网站、后台管理网站)
查看>>
Nginx配置代理解决本地html进行ajax请求接口跨域问题
查看>>
nginx配置全解
查看>>
Nginx配置参数中文说明
查看>>
nginx配置域名和ip同时访问、开放多端口
查看>>
Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
查看>>
Nginx配置如何一键生成
查看>>
Nginx配置实例-负载均衡实例:平均访问多台服务器
查看>>