博客
关于我
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/

你可能感兴趣的文章
PYTHON--欧拉习题二
查看>>
python--高级应用总结
查看>>
python-520表白代码,我看谁说程序员不懂浪漫,送你几套表白代码,一步到位
查看>>
Python-Asyncio TypeError:无法在‘;等待‘;表达式中使用对象DICT
查看>>
Python-AttributeError:‘;dict&39;对象没有属性‘;序列‘;
查看>>
Python-ldap:是否可以在不显式写入密码的情况下进行绑定?
查看>>
python出现 unknown encoding: idna 的处理方法
查看>>
Python出现 RuntimeError: dictionary changed size during iteration 的解决方法
查看>>
Python-numpy(2)数组的操作
查看>>
Python-Numpy的tile函数用法
查看>>
python-open函数
查看>>
Python-Pandas-将特定函数应用于给定级别-多索引数据框架
查看>>
python-queue队列通信
查看>>
python-ros No module named PyKDL
查看>>
python-social-auth 是否需要会话
查看>>
Python再获年度编程语言,微软或成最大赢家
查看>>
python-week5
查看>>
Python写表情包搜索工具(非常详细)零基础入门到精通,收藏这一篇就够了
查看>>
Python-【1】配置
查看>>
Python-从子文件夹执行绝对导入
查看>>