2
public int numOfMinutes(int n, int headID, int[] manager, int[] informTime) {3
Map<Integer, List<Integer>> graph = new HashMap<>();4
for (int i = 0; i < n; i++) {5
graph.putIfAbsent(manager[i], new ArrayList<>());6
graph.get(manager[i]).add(i);8
return dfs(graph, headID, informTime);11
int dfs(Map<Integer, List<Integer>> graph, int curHead, int[] informTime) {13
if (!graph.containsKey(curHead)) {16
for (int subordinate : graph.get(curHead)) {17
curMax = Math.max(curMax, dfs(graph, subordinate, informTime));19
return curMax + informTime[curHead];