সমস্যা বিবরণ
কর্মচারীদের তথ্য: [id, importance, [subordinates]]। একটি কর্মচারীর id দেওয়া থাকলে, সে এবং তার সব অধীনস্থদের (রিকার্সিভলি) মোট ইম্পরটেন্স বের করুন।
উদাহরণ
employees = [[1,5,[2,3]],[2,3,[]],[3,3,[]]], id = 1 → আউটপুট: 11
Emp1 (5) + Emp2 (3) + Emp3 (3) = 11।
এলগরিদম (BFS)
- দুটি ম্যাপ:
weight[id] = importance,leader[id] = subordinates। res = weight[id],queue = leader[id]।while queue:node = queue.pop()।res += weight[node]।queue.extend(leader[node])।
resরিটার্ন করুন।
পাইথন বাস্তবায়ন
class Solution:
def getImportance(self, employees, id):
weight = {}
leader = {}
for e in employees:
weight[e[0]] = e[1]
leader[e[0]] = e[2]
res = weight[id]
queue = leader[id][:] # কপি
while queue:
node = queue.pop()
res += weight[node]
if leader[node]:
queue.extend(leader[node])
return res
ob = Solution()
print(ob.getImportance([[1,5,[2,3]],[2,3,[]],[3,3,[]]], 1)) # 11
ইনপুট / আউটপুট
ইনপুট: [[1,5,[2,3]],[2,3,[]],[3,3,[]]], 1 আউটপুট: 11