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 {
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 -->
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