給定乙個儲存員工資訊的資料結構,它包含了員工唯一的id,重要度 和 直系下屬的id。
比如,員工1是員工2的領導,員工2是員工3的領導。他們相應的重要度為15, 10, 5。那麼員工1的資料結構是[1, 15, [2]],員工2的資料結構是[2, 10, [3]],員工3的資料結構是[3, 5, ]。注意雖然員工3也是員工1的乙個下屬,但是由於並不是直系下屬,因此沒有體現在員工1的資料結構中。
現在輸入乙個公司的所有員工資訊,以及單個員工id,返回這個員工和他所有下屬的重要度之和。
class
employee
:def
__init__
(self,id:
int, importance:
int, subordinates: list[
int]):
# it's the unique id of each node.
# unique id of this employee
self.id=
id# the importance value of this employee
self.importance = importance
# the id of direct subordinates
self.subordinates = subordinates
# id,importance是int,subordinates是list,元素是id
class
solution
:def
getimportance
(self, employees: list[
'employee'],
id:int)
->
int:
# print(employees)
deffind(id
):for i in employees:
if i.
id==id:
employees.remove(i)
return i
n=0 ls=[id
]while ls:
for _ in
range
(len
(ls)):
id=ls.pop(0)
person=find(id)
n+=person.importance
ls.extend(person.subordinates)
return n
執行用時 :204 ms, 在所有 python3 提交中擊敗了41.49%的使用者
class
solution
:def
getimportance
(self, employees: list[
'employee'],
id:int)
->
int:
d=n=
0 ls=[id
]while ls:
for _ in
range
(len
(ls)):
id=ls.pop(0)
person=d[id]
n+=person.importance
ls.extend(person.subordinates)
return n
class
solution
:def
getimportance
(self, employees: list[
'employee'],
id:int)
->
int:
d=defdfs
(eid)
: employee = d[eid]
return
(employee.importance +
sum(dfs(eid)
for eid in employee.subordinates)
)return dfs(
id)
執行用時 :180 ms, 在所有 python3 提交中擊敗了52.84%的使用者
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的乙個下...