Skip to content

Commit ff47fdd

Browse files
committedSep 27, 2019
ADd mintime to reach leaf node google
1 parent a798c30 commit ff47fdd

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed
 
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
/**
2+
* Problem Statement: Not available anywhere
3+
* Level: Medium
4+
* Tags: Google, dfs, minheap
5+
* ETC: 5-7 mins
6+
* Concept covered: DFS, Min Heap
7+
* Time Complexity: first one: O(n), followup: nO(Logn), inserting n nodes where each one takes logn so nlogn, extracting is logn
8+
*/
9+
10+
// function node() {
11+
// this.name = '';
12+
// this.childrens = [{
13+
// node: {}, time: 0
14+
// },...];
15+
// }
16+
17+
funtion minimumTimeToMakeAllLeafNodeWet(root) {
18+
const minTime = {
19+
time: -INFINITE;
20+
}
21+
22+
minTimeLeafNodes(root, minTime);
23+
}
24+
25+
function minTimeLeafNodes(root, minTime, currNodeTimeTaken) {
26+
if (!root) return;
27+
28+
// leaf node check
29+
if (root.childrens.length === 0) {
30+
if (currNodeTimeTaken > minTime.time) {
31+
minTime.time = currNodeTimeTaken;
32+
}
33+
return;
34+
}
35+
36+
root.childrens.forEach((node) => {
37+
minTimeLeafNodes(node, minTime, currNodeTimeTaken + node.time);
38+
});
39+
40+
return;
41+
}
42+
43+
44+
45+
/**
46+
* Follow up question of above
47+
*/
48+
49+
function orderOfNodesGettingWet(root) {
50+
const heap = new minHeap();
51+
heap.add(root);
52+
while(!heap.empty()) {
53+
const minTimeNode = heap.extractMin();
54+
55+
console.log(minTimeNode);
56+
57+
minTimeNode.childrens.forEach((node) => {
58+
node.time += minTimeNode.time;
59+
heap.add(node);
60+
});
61+
}
62+
}

0 commit comments

Comments
 (0)
Please sign in to comment.