Grokking LinkedIn Coding Interview

0% completed

Hidden Document
Hidden Document Content Hidden Document Content Hidden Document Content Hidden Document Content Hidden Document Content Hidden Document Content Hidden Document Content Hidden Document Content Hidden Document Content Hidden Document Content Hidden Document Content Hidden Document Content Hidden Document Content Hidden Document Content Hidden Document Content Hidden Document Content Hidden Document Content Hidden Document Content Hidden Document Content Hidden Document Content Hidden Document Content Hidden Document Content Hidden Document Content Hidden Document Content

.....

.....

.....

Like the course? Get enrolled and start learning!
Muhammad Shayan

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

        }

    }

}

Show 1 reply