博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Binary Tree Maximum Path Sum [leetcode] dp
阅读量:6913 次
发布时间:2019-06-27

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

a(i):在节点i由于单边路径的最大结束

b(i):在节点i路径和

a(i) = max{

i->val, i->val + max{a(i->left), a(i->right) }};

b(i) = max{

 i->val, i->val + max{a(i->left), a(i->right) } , i->val + a(i->left) + a(i->right)};

因为a(i), b(i)只和a(i->left)和a(i->right) 有关。因此能够将空间压缩为O(1)

代码例如以下:

int maxPathSum(TreeNode *root) {        int res = INT_MIN;        getSum(root, res);        return res;    }        int getSum(TreeNode * root, int & res)    {        if (root == NULL) return 0;        int l = getSum(root->left, res);        int r = getSum(root->right, res);        int a, b;        a = max(root->val, root->val + max(l, r));//one side        b = max(a, root->val + l + r);            //both side        res = max(res, max(a, b));        return a;    }

版权声明:本文博客原创文章,博客,未经同意,不得转载。

你可能感兴趣的文章
等待事件之Log File Sync
查看>>
php测试kafka
查看>>
js获取两个日期之间时间差(天数)
查看>>
Memcached 简介
查看>>
虚拟化二、Xen虚拟化技术
查看>>
Oracle 11g数据库随系统自动启动与关闭的设置方法
查看>>
天猫与九大快递合作 价格热战之后的冷静竞争
查看>>
git pull force
查看>>
scons用户手册
查看>>
使用new操作符来调用一个构造函数的时候发生了什么
查看>>
element-ui之el-scrollbar源码解析学习
查看>>
ceph 的pg诊断
查看>>
交换机配置vlan 访问控制列表
查看>>
我的友情链接
查看>>
12个时间管理妙招
查看>>
Python面向对象之类的成员
查看>>
Win8上iis配置
查看>>
Confluence 6 配置 Office 转换器
查看>>
IT从业人员关注哪些问题
查看>>
Windows 2012 Hyper –V 3.0 New Functions
查看>>