File tree Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {number } n
3
+ * @param {number[][] } relations
4
+ * @param {number[] } time
5
+ * @return {number }
6
+ */
7
+ const minimumTime = function ( n , relations , time ) {
8
+ const graph = { } , dist = Array ( n ) . fill ( 0 ) , inDegree = Array ( n ) . fill ( 0 )
9
+
10
+ for ( let [ pre , next ] of relations ) {
11
+ pre -- , next --
12
+ if ( graph [ pre ] == null ) graph [ pre ] = [ ]
13
+ graph [ pre ] . push ( next )
14
+ inDegree [ next ] ++
15
+ }
16
+
17
+ const q = [ ]
18
+ for ( let i = 0 ; i < n ; i ++ ) {
19
+ if ( inDegree [ i ] === 0 ) {
20
+ q . push ( i )
21
+ dist [ i ] = time [ i ]
22
+ }
23
+ }
24
+
25
+ let res = 0
26
+ while ( q . length ) {
27
+ const cur = q . shift ( )
28
+ for ( const next of ( graph [ cur ] || [ ] ) ) {
29
+ dist [ next ] = Math . max ( dist [ next ] , dist [ cur ] + time [ next ] )
30
+ inDegree [ next ] --
31
+ if ( inDegree [ next ] === 0 ) q . push ( next )
32
+ }
33
+ }
34
+
35
+ return Math . max ( ...dist )
36
+ }
37
+
38
+ // another
39
+
1
40
/**
2
41
* @param {number } n
3
42
* @param {number[][] } relations
You can’t perform that action at this time.
0 commit comments