簡體   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