From 1f97ad2778926129ec2841105a643e70b64fa852 Mon Sep 17 00:00:00 2001 From: Lanre Adedara Date: Wed, 30 Oct 2024 08:50:20 +0100 Subject: [PATCH 1/2] feat: add swift implementation to lcof2 problem: No.118 --- .../README.md" | 30 +++++++++++++++++++ .../Solution.swift" | 25 ++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 "lcof2/\345\211\221\346\214\207 Offer II 118. \345\244\232\344\275\231\347\232\204\350\276\271/Solution.swift" diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 118. \345\244\232\344\275\231\347\232\204\350\276\271/README.md" "b/lcof2/\345\211\221\346\214\207 Offer II 118. \345\244\232\344\275\231\347\232\204\350\276\271/README.md" index b9dda603f6065..f0c9f44add198 100644 --- "a/lcof2/\345\211\221\346\214\207 Offer II 118. \345\244\232\344\275\231\347\232\204\350\276\271/README.md" +++ "b/lcof2/\345\211\221\346\214\207 Offer II 118. \345\244\232\344\275\231\347\232\204\350\276\271/README.md" @@ -164,6 +164,36 @@ func findRedundantConnection(edges [][]int) []int { } ``` +#### Swift + +```swift +class Solution { + private var parent: [Int] = [] + + func findRedundantConnection(_ edges: [[Int]]) -> [Int] { + parent = Array(0..<1010) + + for edge in edges { + let a = edge[0] + let b = edge[1] + + if find(a) == find(b) { + return edge + } + parent[find(a)] = find(b) + } + return [] + } + + private func find(_ x: Int) -> Int { + if parent[x] != x { + parent[x] = find(parent[x]) + } + return parent[x] + } +} +``` + diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 118. \345\244\232\344\275\231\347\232\204\350\276\271/Solution.swift" "b/lcof2/\345\211\221\346\214\207 Offer II 118. \345\244\232\344\275\231\347\232\204\350\276\271/Solution.swift" new file mode 100644 index 0000000000000..5987e53a2b151 --- /dev/null +++ "b/lcof2/\345\211\221\346\214\207 Offer II 118. \345\244\232\344\275\231\347\232\204\350\276\271/Solution.swift" @@ -0,0 +1,25 @@ +class Solution { + private var parent: [Int] = [] + + func findRedundantConnection(_ edges: [[Int]]) -> [Int] { + parent = Array(0..<1010) + + for edge in edges { + let a = edge[0] + let b = edge[1] + + if find(a) == find(b) { + return edge + } + parent[find(a)] = find(b) + } + return [] + } + + private func find(_ x: Int) -> Int { + if parent[x] != x { + parent[x] = find(parent[x]) + } + return parent[x] + } +} \ No newline at end of file From da6772d1fdc415d771c58fd52973cbd16e878b93 Mon Sep 17 00:00:00 2001 From: klever34 Date: Wed, 30 Oct 2024 07:54:35 +0000 Subject: [PATCH 2/2] style: format code and docs with prettier --- .../README.md" | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 118. \345\244\232\344\275\231\347\232\204\350\276\271/README.md" "b/lcof2/\345\211\221\346\214\207 Offer II 118. \345\244\232\344\275\231\347\232\204\350\276\271/README.md" index f0c9f44add198..25fa6655da072 100644 --- "a/lcof2/\345\211\221\346\214\207 Offer II 118. \345\244\232\344\275\231\347\232\204\350\276\271/README.md" +++ "b/lcof2/\345\211\221\346\214\207 Offer II 118. \345\244\232\344\275\231\347\232\204\350\276\271/README.md" @@ -171,12 +171,12 @@ class Solution { private var parent: [Int] = [] func findRedundantConnection(_ edges: [[Int]]) -> [Int] { - parent = Array(0..<1010) - + parent = Array(0..<1010) + for edge in edges { let a = edge[0] let b = edge[1] - + if find(a) == find(b) { return edge } @@ -187,7 +187,7 @@ class Solution { private func find(_ x: Int) -> Int { if parent[x] != x { - parent[x] = find(parent[x]) + parent[x] = find(parent[x]) } return parent[x] }