@@ -332,14 +332,14 @@ func min(a, b int) int {
332
332
### ** JavaScript**
333
333
334
334
``` js
335
- var minScore = function (n , roads ) {
335
+ var minScore = function (n , roads ) {
336
336
// 构建点到点的映射表
337
- const graph = Array .from ({length: n + 1 }, () => new Map ());
337
+ const graph = Array .from ({ length: n + 1 }, () => new Map ());
338
338
for (let [u, v, w] of roads) {
339
339
graph[u].set (v, w);
340
340
graph[v].set (u, w);
341
341
}
342
-
342
+
343
343
// DFS
344
344
const vis = new Array (n).fill (false );
345
345
let ans = Infinity ;
@@ -349,13 +349,70 @@ var minScore = function(n, roads) {
349
349
ans = Math .min (ans, w);
350
350
if (! vis[v]) dfs (v);
351
351
}
352
- }
352
+ };
353
353
dfs (1 );
354
-
354
+
355
355
return ans;
356
356
};
357
357
```
358
358
359
+ ### ** TypeScript**
360
+
361
+ ``` ts
362
+ function minScore(n : number , roads : number [][]): number {
363
+ const vis = new Array (n + 1 ).fill (false );
364
+ const g = Array .from ({ length: n + 1 }, () => []);
365
+ for (const [a, b, v] of roads ) {
366
+ g [a ].push ([b , v ]);
367
+ g [b ].push ([a , v ]);
368
+ }
369
+ let ans = Infinity ;
370
+ const dfs = (i : number ) => {
371
+ if (vis [i ]) {
372
+ return ;
373
+ }
374
+ vis [i ] = true ;
375
+ for (const [j, v] of g [i ]) {
376
+ ans = Math .min (ans , v );
377
+ dfs (j );
378
+ }
379
+ };
380
+ dfs (1 );
381
+ return ans ;
382
+ }
383
+ ```
384
+
385
+ ### ** Rust**
386
+
387
+ ``` rust
388
+ impl Solution {
389
+ fn dfs (i : usize , mut ans : i32 , g : & Vec <Vec <(usize , i32 )>>, vis : & mut Vec <bool >) -> i32 {
390
+ if vis [i ] {
391
+ return ans ;
392
+ }
393
+ vis [i ] = true ;
394
+ for (j , v ) in g [i ]. iter () {
395
+ ans = ans . min (* v . min (& Self :: dfs (* j , ans , g , vis )));
396
+ }
397
+ ans
398
+ }
399
+
400
+ pub fn min_score (n : i32 , roads : Vec <Vec <i32 >>) -> i32 {
401
+ let n = n as usize ;
402
+ let mut vis = vec! [false ; n + 1 ];
403
+ let mut g = vec! [Vec :: new (); n + 1 ];
404
+ for road in roads . iter () {
405
+ let a = road [0 ] as usize ;
406
+ let b = road [1 ] as usize ;
407
+ let v = road [2 ];
408
+ g [a ]. push ((b , v ));
409
+ g [b ]. push ((a , v ));
410
+ }
411
+ Self :: dfs (1 , i32 :: MAX , & g , & mut vis )
412
+ }
413
+ }
414
+ ```
415
+
359
416
### ** ...**
360
417
361
418
```
0 commit comments