classSolution{ functhreeSum(_nums: [Int]) -> [[Int]] { var sortnums = nums.sorted() let n = sortnums.count var first =0, second =0, third =0 var res = [[Int]]() for first in0..< n { if first >0&& sortnums[first] == sortnums[first-1] { continue } third = n -1 second = first +1 for second in second ..< n { if second > first +1&& sortnums[second] == sortnums[second-1] { continue } while second < third && sortnums[first] + sortnums[second] + sortnums[third] >0 { third -=1 } // 指针重合说明下一轮循环找不到更小的c使得a+b+c=0 if second == third { break } if sortnums[first] + sortnums[second] + sortnums[third] ==0 { res.append([sortnums[first], sortnums[second], sortnums[third]]) } } } return res } }