給定乙個儲存員工資訊的資料結構,它包含了員工唯一的id,重要度 和 直系下屬的id。
比如,員工1是員工2的領導,員工2是員工3的領導。他們相應的重要度為15, 10, 5。那麼員工1的資料結構是[1, 15, [2]],員工2的資料結構是[2, 10, [3]],員工3的資料結構是[3, 5, ]。注意雖然員工3也是員工1的乙個下屬,但是由於並不是直系下屬,因此沒有體現在員工1的資料結構中。
現在輸入乙個公司的所有員工資訊,以及單個員工id,返回這個員工和他所有下屬的重要度之和。
示例 1:
輸入: [[1, 5, [2, 3]], [2, 3, ], [3, 3, ]], 1
輸出: 11
解釋:員工1自身的重要度是5,他有兩個直系下屬2和3,而且2和3的重要度均為3。因此員工1的總重要度是 5 + 3 + 3 = 11。
注意:乙個員工最多有乙個直系領導,但是可以有多個直系下屬
員工數量不超過2000。
此題和n叉樹的最大深度有相似之處。
思路:先找到員工的id,之後再找這個員工的下屬subordinates。依次遍歷下屬,先找到下屬的id,再找他的subordinates。。。。。果真遞迴。寫了這些遞迴題,感覺更得心應手了。是不是錯覺呢。。。。
int
getimportance
(vector> employees,
int id)}}
return ans;
}
看了題解,用map做了下優化。省去了查詢id的迴圈。無序比有序更節約時間。
unordered_map<
int,employee*
>node;
intgetimportance
(vector> employees,
int id)
return
dfs(id);}
intdfs
(int id)
return ans;
}
690 員工的重要性
給定乙個儲存員工資訊的資料結構,它包含了員工唯一的id,重要度 和 直系下屬的id。比如,員工1是員工2的領導,員工2是員工3的領導。他們相應的重要度為15,10,5。那麼員工1的資料結構是 1,15,2 員工2的資料結構是 2,10,3 員工3的資料結構是 3,5,注意雖然員工3也是員工1的乙個下...
690 員工的重要性
給定乙個儲存員工資訊的資料結構,它包含了員工唯一的id,重要度和直系下屬的id。比如,員工1是員工2的領導,員工2是員工3的領導。他們相應的重要度為15,10,5。那麼員工1的資料結構是 1,15,2 員工2的資料結構是 2,10,3 員工3的資料結構是 3,5,注意雖然員工3也是員工1的乙個下屬,...
690 員工的重要性
題目 給定乙個儲存員工資訊的資料結構,它包含了員工唯一的id,重要度 和 直系下屬的id。比如,員工1是員工2的領導,員工2是員工3的領導。他們相應的重要度為15,10,5。那麼員工1的資料結構是 1,15,2 員工2的資料結構是 2,10,3 員工3的資料結構是 3,5,注意雖然員工3也是員工1的...