LeetCode 690 員工的重要性 DFS

2021-09-11 11:01:19 字數 1158 閱讀 3825

【問題描述】

給定乙個儲存員工資訊的資料結構,它包含了員工唯一的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。

【思路】

很簡單的遞迴,每次找到id的這個員工在vector中的位置,記錄到index中,今後我們就直接可以通過employees[index]來訪問這個員工

遞迴思路:

總的importance = 自己的importance + 自己員工的importance

leetcode對stl的要求有點高,本題難點在於對stl的了解和c中結構體的一些運用,主要是細節很煩人,其實演算法感覺不多

ac**如下:

/*

// employee info

class employee ;

*/class solution

}int len = employees[index]

->subordinates.

size()

;if(len ==0)

//如果沒有下屬,直接返回自身的importance

return imp;

//否則搜尋自己所有的下屬

for(

int i =

0;i < len;i++

)return imp;

}int

getimportance

(vector> employees,

int id)

};

leetcode 690 員工的重要性

給定乙個儲存員工資訊的資料結構,它包含了員工唯一的id,重要度 和 直系下屬的id。比如,員工1是員工2的領導,員工2是員工3的領導。他們相應的重要度為15,10,5。那麼員工1的資料結構是 1,15,2 員工2的資料結構是 2,10,3 員工3的資料結構是 3,5,注意雖然員工3也是員工1的乙個下...

Leetcode 690 員工的重要性

給定乙個儲存員工資訊的資料結構,它包含了員工唯一的id,重要度 和 直系下屬的id。比如,員工1是員工2的領導,員工2是員工3的領導。他們相應的重要度為15,10,5。那麼員工1的資料結構是 1,15,2 員工2的資料結構是 2,10,3 員工3的資料結構是 3,5,注意雖然員工3也是員工1的乙個下...

LeetCode 690 員工的重要性

給定乙個儲存員工資訊的資料結構,它包含了員工唯一的id,重要度和直系下屬的id。比如,員工1是員工2的領導,員工2是員工3的領導。他們相應的重要度為15,10,5。那麼員工1的資料結構是 1,15,2 員工2的資料結構是 2,10,3 員工3的資料結構是 3,5,注意雖然員工3也是員工1的乙個下屬,...