0
假設我有一棵二叉樹,其中一個節點可以有0,1或2個子節點。成本值與每個節點相關聯,並且可以是{5,10,20,40}。新節點的最佳佈局位於具有相同或更低成本值的節點下。例如,一個成本值爲20的新節點最好置於成本值爲20的節點下,但也可以放置在成本值爲5和10的節點下。給定規格的二叉樹中節點的最優化位置是什麼?
該算法的主要要求是完成左側如果需要,也就是說,如果一個成本值爲10的節點具有成本值爲10的左側子節點,則具有成本值10的新節點將成爲上述節點的右側子節點。次要要求是最大化樹的整體深度。
該樹無法在任何時間點重新排列。如果一個傳入節點的價值較低,那麼就沒有懲罰。 鑑於上述要求,我們如何確定樹中傳入新節點的最佳位置?我們可以爲它編寫一個通用算法嗎?
最初,我想先完成樹的每個級別,但我認爲這不是最優的。
問題的不完整/不完整描述例如,如果要處理的第一個節點是40,而下一個到達的是5,會發生什麼情況?有罰款嗎?或者你被允許「拆除」樹並重新排列它?如果後者對時間複雜度有什麼要求? –
根據要求添加了一些細節 – Backspace