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 5b81255

Browse files
committed
feat: add rust solution to lc problem: No.0547
No.0547.Number of Provinces
1 parent 0caa4cb commit 5b81255

File tree

3 files changed

+85
-0
lines changed

3 files changed

+85
-0
lines changed

‎solution/0500-0599/0547.Number of Provinces/README.md‎

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,36 @@ func findCircleNum(isConnected [][]int) int {
361361
}
362362
```
363363

364+
### **Rust**
365+
366+
```rust
367+
impl Solution {
368+
fn dfs(is_connected: &mut Vec<Vec<i32>>, vis: &mut Vec<bool>, i: usize) {
369+
vis[i] = true;
370+
for j in 0..is_connected.len() {
371+
if vis[j] || is_connected[i][j] == 0 {
372+
continue;
373+
}
374+
Self::dfs(is_connected, vis, j);
375+
}
376+
}
377+
378+
pub fn find_circle_num(mut is_connected: Vec<Vec<i32>>) -> i32 {
379+
let n = is_connected.len();
380+
let mut vis = vec![false; n];
381+
let mut res = 0;
382+
for i in 0..n {
383+
if vis[i] {
384+
continue;
385+
}
386+
res += 1;
387+
Self::dfs(&mut is_connected, &mut vis, i);
388+
}
389+
res
390+
}
391+
}
392+
```
393+
364394
### **...**
365395

366396
```

‎solution/0500-0599/0547.Number of Provinces/README_EN.md‎

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,36 @@ func findCircleNum(isConnected [][]int) int {
284284
}
285285
```
286286

287+
### **Rust**
288+
289+
```rust
290+
impl Solution {
291+
fn dfs(is_connected: &mut Vec<Vec<i32>>, vis: &mut Vec<bool>, i: usize) {
292+
vis[i] = true;
293+
for j in 0..is_connected.len() {
294+
if vis[j] || is_connected[i][j] == 0 {
295+
continue;
296+
}
297+
Self::dfs(is_connected, vis, j);
298+
}
299+
}
300+
301+
pub fn find_circle_num(mut is_connected: Vec<Vec<i32>>) -> i32 {
302+
let n = is_connected.len();
303+
let mut vis = vec![false; n];
304+
let mut res = 0;
305+
for i in 0..n {
306+
if vis[i] {
307+
continue;
308+
}
309+
res += 1;
310+
Self::dfs(&mut is_connected, &mut vis, i);
311+
}
312+
res
313+
}
314+
}
315+
```
316+
287317
### **...**
288318

289319
```
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
impl Solution {
2+
fn dfs(is_connected: &mut Vec<Vec<i32>>, vis: &mut Vec<bool>, i: usize) {
3+
vis[i] = true;
4+
for j in 0..is_connected.len() {
5+
if vis[j] || is_connected[i][j] == 0 {
6+
continue;
7+
}
8+
Self::dfs(is_connected, vis, j);
9+
}
10+
}
11+
12+
pub fn find_circle_num(mut is_connected: Vec<Vec<i32>>) -> i32 {
13+
let n = is_connected.len();
14+
let mut vis = vec![false; n];
15+
let mut res = 0;
16+
for i in 0..n {
17+
if vis[i] {
18+
continue;
19+
}
20+
res += 1;
21+
Self::dfs(&mut is_connected, &mut vis, i);
22+
}
23+
res
24+
}
25+
}

0 commit comments

Comments
(0)

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