Leetcode 1339. 分裂二叉树的最大乘积(DAY 19)
发布日期:2021-06-30 22:24:21
浏览次数:2
分类:技术文章
本文共 1770 字,大约阅读时间需要 5 分钟。
原题题目
代码实现(首刷自解超时 自顶至底重复太多次)
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */#define MAX 9999999999long modulo;long dvalue;long maxmult;long visit(struct TreeNode* root){ if(!root) return 0; return visit(root->left) + visit(root->right) + root->val;} void multvisit(struct TreeNode* root,int sum){ if(root) { long temp = visit(root); if(fabs(sum - temp - temp) < dvalue) { dvalue = fabs(sum - temp - temp); maxmult = (sum - temp) * temp; } multvisit(root->left,sum); multvisit(root->right,sum); }}long maxProduct(struct TreeNode* root){ dvalue = MAX; maxmult = 0; modulo = pow(10,9) + 7; long sum = visit(root); multvisit(root,sum); return maxmult % modulo;}
代码实现(自底至顶 一遍即可)
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */#define MAX 9999999999long modulo;long dvalue;long maxmult;long visit(struct TreeNode* root){ if(!root) return 0; return visit(root->left) + visit(root->right) + root->val;} int multvisit(struct TreeNode* root,int sum){ if(!root) return 0; long rootnumber = root->val + multvisit(root->left,sum) + multvisit(root->right,sum); int temp = fabs(sum - rootnumber - rootnumber); if(temp < dvalue) { dvalue = temp; maxmult = (sum - rootnumber) * rootnumber; } return rootnumber;}long maxProduct(struct TreeNode* root){ dvalue = MAX; maxmult = 0; modulo = pow(10,9) + 7; long sum = visit(root); multvisit(root,sum); return maxmult % modulo;}
转载地址:https://love6.blog.csdn.net/article/details/112305674 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月15日 04时55分06秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Android中间件开发----Windows下Android环境搭建(最新最方便)
2019-04-30
C/C++如何返回一个数组/指针
2019-04-30
如何在 Ubuntu 16.04 上安装并使用 TensorFlow
2019-04-30
基于Android NDK的学习之旅-----JNI LOG打印
2019-04-30
语音命令词识别
2019-04-30
腾讯AI语音识别API踩坑记录
2019-04-30
linux中Oops信息的调试及栈回溯—Linux人都知道,这是好东西!
2019-04-30
C语言与javascript的不同之处
2019-04-30
Android照相功能驱动层中HAL的实现(基于OK6410开发板+OV9650摄像头)
2019-04-30
Android Camera HAL设计初步
2019-04-30
基于U-boot上TFTP服务器更新系统
2019-04-30
Python列表应用copy模块的深拷贝和浅拷贝思路整理-1
2019-04-30
Python列表应用copy模块的深拷贝和浅拷贝思路整理-2
2019-04-30
Python列表应用copy模块的深拷贝和浅拷贝思路整理-3
2019-04-30
从零开始搭建神经网络
2019-04-30
python bytes 与 str 的转换
2019-04-30
TCP三次握手的个人理解
2019-04-30
UVA12716 GCD XOR
2019-04-30
P1447 [NOI2010] 能量采集
2019-04-30