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

本文共 821 字,大约阅读时间需要 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/

你可能感兴趣的文章
PHP读写XML文件
查看>>
PHP读写XML文件
查看>>
R&Python Data Science 系列:数据处理(3)
查看>>
php读取xml 数据库字段超长处理
查看>>
php课程 12-40 抽象类的作用是什么
查看>>
php课程 4-16 数组自定义函数(php数组->桶)
查看>>
PHP调用接口用post方法传送json数据
查看>>
php转化IP为整形
查看>>
php输出数据到csv文件
查看>>
php输出语句
查看>>
php运行原理详细说明
查看>>
php运行环境出现Undefined index 或variable时解决方法
查看>>
php进程通信
查看>>
R&Python Data Science 系列:数据处理(2)
查看>>
php递归算法总结
查看>>
PHP递归遍历文件夹
查看>>
R&Python Data Science 系列:数据处理(1)
查看>>
php错误日志文件
查看>>
PHP错误解决:Array and string offset access syntax with curly braces is deprecated
查看>>
php隐藏手机号中间4位方法总结
查看>>