繁体   English   中英

在二叉树中查找所有可能路径的最大积

[英]Find Max Product of All Possible Paths in A Binary Tree

我在编写算法的伪代码时遇到麻烦,该算法在二叉树中找到所有可能路径的最大乘积。

问题在此链接中描述

可以是任何路径的事实,以及存在负数的事实,使这些事情复杂化了。 否则它将是一个简单的递归。

但是这里仍然有递归。

给定只是一个级别的子树,如下所示:

 A
B C   

然后,您有A * B * C或A * B或A * C或A或B或C的6种可能性。

给定一个更大的树,像这样:

  A
 X Y

其中X和Y本身就是树,那么请考虑您具有类似的6种可能的组合:

一种

A *(X的任何潜在乘积,包括X的根节点)*(Y的任何潜在乘积,包括Y的根节点)

*(X的任何潜在产品,包括X的根节点)

*(Y的任何潜在乘积,包括Y的根节点)

X的任何潜在产品

Y的任何潜在产品

这些产品中的任何一个最终都可能是最大的。

因此,现在您可以编写包含这6种可能性的递归函数,并从根节点开始调用该函数。 在函数中,您将计算所有这6个乘积(递归调用函数),并且如果其中任何一个大于全局最大值,则您将拥有一个新的全局最大值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM