classSolution: defthreeSum(self, nums: List[int]) -> List[List[int]]: n = len(nums) ans = list() nums.sort() for i inrange(n): left = i + 1 right = n - 1 if nums[i] > 0: break if i > 0and nums[i] == nums[i-1]: continue while left < right: total = nums[i] + nums[left] + nums[right] if total > 0: right -= 1 while left < right and nums[right] == nums[right + 1]: right -= 1 elif total < 0: left += 1 while left < right and nums[left] == nums[left - 1]: left += 1 else: ans.append([nums[i], nums[left], nums[right]]) while left < right and nums[left] == nums[left + 1]: left += 1 while left < right and nums[right] == nums[right - 1]: right -= 1 left += 1 right -= 1 return ans