diff --git a/lcci/16.21.Sum Swap/README.md b/lcci/16.21.Sum Swap/README.md index b70950be66aa2..de33a7887c4d2 100644 --- a/lcci/16.21.Sum Swap/README.md +++ b/lcci/16.21.Sum Swap/README.md @@ -148,6 +148,37 @@ function findSwapValues(array1: number[], array2: number[]): number[] { } ``` +```swift +class Solution { + func findSwapValues(_ array1: [Int], _ array2: [Int]) -> [Int] { + var s1 = 0, s2 = 0 + var set = Set() + + for x in array1 { + s1 += x + } + for x in array2 { + s2 += x + set.insert(x) + } + + let diff = s1 - s2 + if diff % 2 != 0 { + return [] + } + let target = diff / 2 + + for a in array1 { + let b = a - target + if set.contains(b) { + return [a, b] + } + } + return [] + } +} +``` + diff --git a/lcci/16.21.Sum Swap/README_EN.md b/lcci/16.21.Sum Swap/README_EN.md index 1e96bc3427299..977268ade5a2c 100644 --- a/lcci/16.21.Sum Swap/README_EN.md +++ b/lcci/16.21.Sum Swap/README_EN.md @@ -154,6 +154,37 @@ function findSwapValues(array1: number[], array2: number[]): number[] { } ``` +```swift +class Solution { + func findSwapValues(_ array1: [Int], _ array2: [Int]) -> [Int] { + var s1 = 0, s2 = 0 + var set = Set() + + for x in array1 { + s1 += x + } + for x in array2 { + s2 += x + set.insert(x) + } + + let diff = s1 - s2 + if diff % 2 != 0 { + return [] + } + let target = diff / 2 + + for a in array1 { + let b = a - target + if set.contains(b) { + return [a, b] + } + } + return [] + } +} +``` + diff --git a/lcci/16.21.Sum Swap/Solution.swift b/lcci/16.21.Sum Swap/Solution.swift new file mode 100644 index 0000000000000..7a676b163a5c1 --- /dev/null +++ b/lcci/16.21.Sum Swap/Solution.swift @@ -0,0 +1,28 @@ +class Solution { + func findSwapValues(_ array1: [Int], _ array2: [Int]) -> [Int] { + var s1 = 0, s2 = 0 + var set = Set() + + for x in array1 { + s1 += x + } + for x in array2 { + s2 += x + set.insert(x) + } + + let diff = s1 - s2 + if diff % 2 != 0 { + return [] + } + let target = diff / 2 + + for a in array1 { + let b = a - target + if set.contains(b) { + return [a, b] + } + } + return [] + } +} \ No newline at end of file