0% completed
.....
.....
.....
Muhammad Shayan
· 2 years ago
func findTripletSumToZero(arr: [Int]) -> [[Int]] {
let set = Set(arr)
var triplets = Set<Set<Int>>()
var i = 0
var j = 1
while (i < arr.count && j < arr.count) {
if (!set.contains(-1 * (arr[i] + arr[j]))) {
if (i == j) {
j += 2
} else {
j += 1
}
} else {
let triplet = Set([arr[i], arr[j], -1 * (arr[i] + arr[j])])
if (!triplets.contains(triplet)) {
triplets.insert(triplet)
}
if (i == j) {
i += 2
} else {
i += 1
}
}
}
return triplets.map { set in
set.map { elem in
elem
}
}
}