假設您是聚會顧問,並被聘請準備並舉辦公司聚會。公司中的每個員工都是B樹風格層次結構的一部分,並且享有派對評級值。爲了防止在直接主管在場的情況下對員工進行抑制,主管及其直接員工均不會被邀請。但是,任何一個組都可以被邀請。聚會等級 - 面試解決方案
設計一個算法來產生最大聚會排名總數的客人名單。
我的解決辦法是
- 監事將包含一個域的直接僱員的黨的隊伍的總和
執行自下而上的廣度優先搜索訪問最低主管樹中的子樹。對於每位主管,計算主管級別與直接員工總和之間的差異。如果員工隊伍總和大於主管級別,則所有受影響的員工將被添加到訪客列表中。
如果主管和員工排名之間的差異小於或等於零,則向上移動一個級別並執行上述比較,以查找下一級別子樹。
繼續向上一級,直到公司的負責人被分析,並打印出黨的總和和客人名單。
我對運行時間分析O(n log n -1)
由於
log n-1
- 時間下降到最低的子樹
n
- 比較的最大數量
我這個在接受記者採訪時提出了,但不禁感到我錯過了一些東西。我對分析和步驟是否正確?
那麼,你的問題是什麼? – 2013-02-12 20:39:55
@MatthewStrawbridge編輯了這個問題。在最初的提交過程中,我重寫了一些內容,最後的過去也被刪除了。 – Jason 2013-02-12 20:49:06
這是一個關於樹問題的最大加權獨立集。如果您在Internet上搜索,則可以使用動態編程查找解決方案。 – 2013-02-13 13:25:04