首页 > 试题广场 >

加分二叉树

[编程题]加分二叉树
  • 热度指数:182 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

设一个n个节点的二叉树tree的中序遍历为(l,2,3,…,n),其中数字1,2,3,…,n为节点编号。每个节点都有一个分数(均为正整数),记第j个节点的分数为di,tree及它的每个子树都有一个加分,任一棵子树subtree(也包含tree本身)的加分计算方法如下:

subtree的左子树的加分× subtree的右子树的加分+subtree的根的分数

若某个子树为主,规定其加分为1,叶子的加分就是叶节点本身的分数。不考虑它的空子树。 试求一棵符合中序遍历为(1,2,3,…,n)且加分最高的二叉树tree。
要求输出:

(1)tree的最高加分

(2)tree的前序遍历

数据范围: ,每个节点的值满足
示例1

输入

[5,7,1,2,10]

输出

[[145],[3,1,2,4,5]]
头像 dogfar
发表于 2023-03-24 21:46:40
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param scores int整型vector * @return int整型vect 展开全文

问题信息

难度:
1条回答 495浏览

热门推荐

通过挑战的用户

查看代码