0

次のクラスがあるとします。

class Tree:
    def __init__(self, value, right=None, left=None):
        self.value, self.right, self.left = value, right, left

tree = Tree(75, Tree(95), Tree(64))

ここで、上記のクラスのみを使用して次の数値を初期化する必要があるとします。

ここに画像の説明を入力

上記の問題を解決する最も賢いアルゴリズムはどれですか? 再帰的に行う必要はありません (おそらく不可能かもしれませんが、私にはわかりません)。

上記のクラスを使用して問題を解決できない場合は、他の解決策を提供してください。

4

2 に答える 2

4

三角形は二分木ではないことに注意してください。

実際、それをツリーとして扱うと、すべての可能なパスを列挙することになり、数値ごとに分岐しているため、O(2^n) アルゴリズムにつながります。

この方法で解決できますか?もちろん、2^(15 - 1) = 16384 という 15 のレベルがあり、PE のミニッツ ガイドラインの下で十分に解くことができます。しかし、それは良い解決策ではありません。

ヒント: これは動的プログラミングの質問です。

于 2013-07-12T19:33:32.453 に答える