[英]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.