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