File tree Expand file tree Collapse file tree 2 files changed +63
-0
lines changed
lcof2/剑指 Offer II 116. 朋友圈 Expand file tree Collapse file tree 2 files changed +63
-0
lines changed Original file line number Diff line number Diff line change @@ -178,6 +178,40 @@ func findCircleNum(isConnected [][]int) int {
178
178
}
179
179
```
180
180
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
+
181
215
<!-- tabs:end -->
182
216
183
217
<!-- solution:end -->
Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments