```fun threeSum(numss: IntArray): List<List<...
# announcements
w
Copy code
fun threeSum(numss: IntArray): List<List<Int>> { // O(N^2) with hash table
        var nums = numss.sorted()
        val map = nums.mapIndexed{ i, n -> n to i }.toMap()
        var result = arrayListOf<List<Int>>()
        for (i in 0 until nums.size)
            for (j in i until nums.size) {
                val third = -1*(nums[i]+nums[j]); val k = map[third]
                if (map.containsKey(third) && i != j && j != k && i != k && k!! >= j) result.add(listOf(nums[i], nums[j], third))
            }
        return result.distinct()
    }