20150708 lintcode 总结 Binary Tree Maximum Path Sum Show result *****
来源:互联网 发布:淘宝物流怎么设置 编辑:程序博客网 时间:2024/05/18 17:42
Medium Binary Tree Maximum Path Sum
23%
Accepted
Given a binary tree, find the maximum path sum. The path may start and end at any node in the tree.
Example: Given the below binary tree:
1 / \2 3
return 6
.
/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = val; * this.left = this.right = null; * } * } */public class Solution {private class ResType{private int singlePath, maxPath;public ResType(int singlePath, int maxPath){this.singlePath = singlePath;this.maxPath = maxPath;}}; private ResType helper(TreeNode root){if(root == null){return new ResType(0, Integer.MIN_VALUE);}// divideResType left = helper(root.left);ResType right = helper(root.right);//conquerint singlePath = Math.max(left.singlePath, right.singlePath)+root.val;singlePath = Math.max(singlePath, 0); //very important !!!int maxPath = Math.max(left.maxPath, right.maxPath);maxPath = Math.max(maxPath, left.singlePath+right.singlePath+root.val);return new ResType(singlePath, maxPath);} /** * @param root: The root of binary tree. * @return: An integer. */ public int maxPathSum(TreeNode root) { // write your code here ResType res = helper(root); return res.maxPath; }}
定义两个值 singlePath 和 maxPath:
1. singlePath是从root到左子树或右子树任一node的 最大path sum, 如果singlePath是负数, 就强制设其为0,等于parent计算时不再考虑此root为根的tree的singlePath。
2. maxPath是root 树中最大的 path sum,可以不经过 root。
把这两个值放在一个返回类型类ResType内。
最大的 path sum 有两种情况:
1. 经过 root: left.singlePath + root.val + right.singlePath
2. 不经过 root: Math.max(left.maxPath, right.maxPath);
0 0
- 20150708 lintcode 总结 Binary Tree Maximum Path Sum Show result *****
- lintcode:Binary Tree Maximum Path Sum
- *[Lintcode]Binary Tree Maximum Path Sum
- [lintcode] Binary Tree Maximum Path Sum II
- Binary Tree Maximum Path Sum ---lintcode
- Binary Tree Maximum Path Sum
- Binary Tree Maximum Path Sum
- Binary Tree Maximum Path Sum
- Binary Tree Maximum Path Sum
- Binary Tree Maximum Path Sum
- Binary Tree Maximum Path Sum
- Binary Tree Maximum Path Sum
- Binary Tree Maximum Path Sum
- Binary Tree Maximum Path Sum
- Binary Tree Maximum Path Sum
- Binary Tree Maximum Path Sum
- Binary Tree Maximum Path Sum
- Binary Tree Maximum Path Sum
- 36Valid Sudoku
- Ubuntu15.04安装samba服务
- 弧形转圈圈 带渐变色
- 一步一步学内核(Linux kernel) -----之2:学习教程
- hdu 1728 逃离迷宫 bfs记转向
- 20150708 lintcode 总结 Binary Tree Maximum Path Sum Show result *****
- 直接来第一篇吧----JAVA的三大特性之一:封装(Encapsulation)
- iOS开发21:使用Settings Bundle为程序添加设置项
- Android TextView 走马灯效果
- 表头图片覆盖状态栏,这样状态栏的背景白色条就不会太难看
- unbuntu 12.04新安装qt5.4配置kit
- centos中安装 pip
- cabac编码
- 空气净化器有用吗?除甲醛最有效方法。