Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 5eb7f4c

Browse files
authored
feat: add ts solution to lc problem: No.323 (doocs#2990)
1 parent fe2171d commit 5eb7f4c

File tree

3 files changed

+114
-0
lines changed

3 files changed

+114
-0
lines changed

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

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -492,4 +492,47 @@ function countComponents(n: number, edges: number[][]): number {
492492

493493
<!-- solution:end -->
494494

495+
<!-- solution:start -->
496+
497+
### 方法 3: BFS
498+
499+
<!-- tabs:start -->
500+
501+
#### TypeScript
502+
503+
```ts
504+
function countComponents(n: number, edges: number[][]): number {
505+
const g: number[][] = Array.from({ length: n }, () => []);
506+
const vis = new Set<number>();
507+
let ans = 0;
508+
509+
for (const [i, j] of edges) {
510+
g[i].push(j);
511+
g[j].push(i);
512+
}
513+
514+
const dfs = (i: number) => {
515+
if (vis.has(i)) return;
516+
517+
vis.add(i);
518+
for (const j of g[i]) {
519+
dfs(j);
520+
}
521+
};
522+
523+
for (let i = 0; i < n; i++) {
524+
if (vis.has(i)) continue;
525+
526+
dfs(i);
527+
ans++;
528+
}
529+
530+
return ans;
531+
}
532+
```
533+
534+
<!-- tabs:end -->
535+
536+
<!-- solution:end -->
537+
495538
<!-- problem:end -->

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

Lines changed: 43 additions & 0 deletions
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 -->
Lines changed: 28 additions & 0 deletions
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)

AltStyle によって変換されたページ (->オリジナル) /