Skip to content

Commit 48bb5a7

Browse files
authored
Create 1376-time-needed-to-inform-all-employees.js
1 parent 44b0e00 commit 48bb5a7

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/**
2+
* DFS | Tree
3+
* Time O(n) | Space O(n)
4+
* https://leetcode.com/problems/time-needed-to-inform-all-employees/
5+
* @param {number} n
6+
* @param {number} headID
7+
* @param {number[]} manager
8+
* @param {number[]} informTime
9+
* @return {number}
10+
*/
11+
var numOfMinutes = function(n, headID, manager, informTime) {
12+
13+
const tree = {};
14+
for(let i = 0; i < manager.length; i++) {
15+
16+
if(manager[i] === -1) continue;
17+
18+
const senior = manager[i];
19+
const junior = i;
20+
21+
if(!tree[senior]) {
22+
tree[senior] = [];
23+
}
24+
25+
tree[senior].push(junior);
26+
}
27+
28+
29+
let time = 0;
30+
const dfs = (node, totalTime) => {
31+
if(tree[node] === undefined) {
32+
time = Math.max(time, totalTime);
33+
return;
34+
}
35+
36+
const subordinates = tree[node];
37+
38+
for(let i = 0; i < subordinates.length; i++) {
39+
const subordinate = subordinates[i];
40+
dfs(subordinate, totalTime + informTime[node]);
41+
}
42+
}
43+
44+
dfs(headID, 0);
45+
46+
return time;
47+
};

0 commit comments

Comments
 (0)