classSolution { functhreeSum(_nums: [Int]) -> [[Int]] { let nums = nums.sorted() var res = [[Int]]()
for i in0..<nums.count { if i >0&& nums[i] == nums[i -1] { continue }
var left = i +1 var right = nums.count -1
while left < right { let sum = nums[i] + nums[left] + nums[right] if sum ==0 { res.append([nums[i], nums[left], nums[right]]) while left < right && nums[left] == nums[left +1] { left +=1 } while left < right && nums[right] == nums[right -1] { right -=1 } left +=1 right -=1 } elseif sum <0 { left +=1 } else { right -=1 } } } return res } }