Skip to content

Commit 0843151

Browse files
authored
feat: add swift implementation to lcof2 problem: No.116 (#3694)
1 parent b851beb commit 0843151

File tree

2 files changed

+63
-0
lines changed

2 files changed

+63
-0
lines changed

lcof2/剑指 Offer II 116. 朋友圈/README.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,40 @@ func findCircleNum(isConnected [][]int) int {
178178
}
179179
```
180180

181+
#### Swift
182+
183+
```swift
184+
class Solution {
185+
private var isConnected: [[Int]] = []
186+
private var visited: [Bool] = []
187+
private var n: Int = 0
188+
189+
func findCircleNum(_ isConnected: [[Int]]) -> Int {
190+
self.isConnected = isConnected
191+
self.n = isConnected.count
192+
self.visited = [Bool](repeating: false, count: n)
193+
var numberOfCircles = 0
194+
195+
for i in 0..<n {
196+
if !visited[i] {
197+
dfs(i)
198+
numberOfCircles += 1
199+
}
200+
}
201+
return numberOfCircles
202+
}
203+
204+
private func dfs(_ i: Int) {
205+
visited[i] = true
206+
for j in 0..<n {
207+
if !visited[j] && isConnected[i][j] == 1 {
208+
dfs(j)
209+
}
210+
}
211+
}
212+
}
213+
```
214+
181215
<!-- tabs:end -->
182216

183217
<!-- solution:end -->
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
class Solution {
2+
private var isConnected: [[Int]] = []
3+
private var visited: [Bool] = []
4+
private var n: Int = 0
5+
6+
func findCircleNum(_ isConnected: [[Int]]) -> Int {
7+
self.isConnected = isConnected
8+
self.n = isConnected.count
9+
self.visited = [Bool](repeating: false, count: n)
10+
var numberOfCircles = 0
11+
12+
for i in 0..<n {
13+
if !visited[i] {
14+
dfs(i)
15+
numberOfCircles += 1
16+
}
17+
}
18+
return numberOfCircles
19+
}
20+
21+
private func dfs(_ i: Int) {
22+
visited[i] = true
23+
for j in 0..<n {
24+
if !visited[j] && isConnected[i][j] == 1 {
25+
dfs(j)
26+
}
27+
}
28+
}
29+
}

0 commit comments

Comments
 (0)