第四周 Leetcode 124. Binary Tree Maximum Path Sum (HARD)
2024-08-30 05:14:50
124. Binary Tree Maximum Path Sum
题意:给定一个二叉树,每个节点有一个权值,寻找任意一个路径,使得权值和最大,只需返回权值和。
思路:对于每一个节点 首先考虑以这个节点为结尾(包含它或者不包含)的最大值,有两种情况,分别来自左儿子和右儿子设为Vnow。
然后考虑经过这个节点的情况来更新最终答案。更新答案后返回Vnow供父节点继续更新。
代码很简单.
有一个类似的很有趣的题目,给定一个二叉树,选择一条路径,使得权值最大的和最小的相差最大。参考POJ3728
class Solution {
public:
int ans;
Solution(){ans=-2147483647;}
int maxPathSum(TreeNode* root) {
solve(root);
return ans;
}
int solve(TreeNode* root) {
if(root->left==NULL&&root->right==NULL)
{ans=max(ans,root->val);return root->val;}
int vnow=root->val;ans=max(ans,vnow);
int lv=0,rv=0;
if(root->left!=NULL)
{
lv=solve(root->left);
vnow=max(vnow,root->val+lv);
ans=max(ans,vnow);
}
if(root->right!=NULL)
{
rv=solve(root->right);
vnow=max(vnow,root->val+rv);
ans=max(ans,vnow);
}
ans=max(ans,lv+rv+root->val);
return vnow;
}
};
最新文章
- Diffuse_Shader笔记1.shader和编辑器的交互
- 十四、Java基础---------String、StringBuffer、StringBuilder基本应用
- C#基础之lock
- BZOJ1224: [HNOI2002]彩票
- GCC笔记
- iOS JSON解析
- android 应用页面与数据申请逻辑剥离;
- 使用SQL Server 2005 新的语法ROW_NUMBER()进行分页的两种不同方式的性能比较
- POJ ---3070 (矩阵乘法求Fibonacci 数列)
- [BZOJ 1029] [JSOI2007] 建筑抢修 【贪心】
- 生成MyEclipse6.5&;7.5&;8.0注册码的java源码
- HDU H204 阿牛的EOF牛肉串
- object-c编程tips-timer
- Linode开通新加坡机房:vps速度快,价格不变!
- eclipse导入本地的svn项目后不能在team提交更新
- ListBox、ListCtrl
- MyBatis之反射技术+JDK动态代理+cglib代理
- 【AtCoder】CODE FESTIVAL 2017 qual B
- CentOS 的 /etc/profile 和 ~/.bash_profile 及 .zshrc
- top命令详析及排查问题使用演示