Skip to content

Commit b0a0c11

Browse files
committedJun 1, 2024
feat: add ts solution to lc problem: No.323
1 parent fe2171d commit b0a0c11

File tree

2 files changed

+71
-0
lines changed

2 files changed

+71
-0
lines changed
 

‎solution/0300-0399/0323.Number of Connected Components in an Undirected Graph/README_EN.md

+43
Original file line numberDiff line numberDiff line change
@@ -487,4 +487,47 @@ function countComponents(n: number, edges: number[][]): number {
487487

488488
<!-- solution:end -->
489489

490+
<!-- solution:start -->
491+
492+
### Solution 3: BFS
493+
494+
<!-- tabs:start -->
495+
496+
#### TypeScript
497+
498+
```ts
499+
function countComponents(n: number, edges: number[][]): number {
500+
const g: number[][] = Array.from({ length: n }, () => []);
501+
const vis = new Set<number>();
502+
let ans = 0;
503+
504+
for (const [i, j] of edges) {
505+
g[i].push(j);
506+
g[j].push(i);
507+
}
508+
509+
const dfs = (i: number) => {
510+
if (vis.has(i)) return;
511+
512+
vis.add(i);
513+
for (const j of g[i]) {
514+
dfs(j);
515+
}
516+
};
517+
518+
for (let i = 0; i < n; i++) {
519+
if (vis.has(+i)) continue;
520+
521+
dfs(+i);
522+
ans++;
523+
}
524+
525+
return ans;
526+
}
527+
```
528+
529+
<!-- tabs:end -->
530+
531+
<!-- solution:end -->
532+
490533
<!-- problem:end -->
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
function countComponents(n: number, edges: number[][]): number {
2+
const g: number[][] = Array.from({ length: n }, () => []);
3+
const vis = new Set<number>();
4+
let ans = 0;
5+
6+
for (const [i, j] of edges) {
7+
g[i].push(j);
8+
g[j].push(i);
9+
}
10+
11+
const dfs = (i: number) => {
12+
if (vis.has(i)) return;
13+
14+
vis.add(i);
15+
for (const j of g[i]) {
16+
dfs(j);
17+
}
18+
};
19+
20+
for (let i = 0; i < n; i++) {
21+
if (vis.has(i)) continue;
22+
23+
dfs(+i);
24+
ans++;
25+
}
26+
27+
return ans;
28+
}

0 commit comments

Comments
 (0)