class Solution:
    def threeSum(self, nums: list[int]) -> list[list[int]]:
        result = []
        nums.sort()

        for i in range(len(nums) - 2):
            if i > 0 and nums[i] == nums[i - 1]:
                continue
            
            j, k = i + 1, len(nums) - 1
            while j < k:
                total = nums[i] + nums[j] + nums[k]
                if total == 0:
                    result.append([nums[i], nums[j], nums[k]])
                    j += 1
                    k -= 1
                    while j < k and nums[j - 1] == nums[j]:
                        j += 1
                    while k > j and nums[k + 1] == nums[k]:
                        k -= 1
                elif total > 0:
                    k -= 1
                else:
                    j += 1

        return result

# nums = [-1,0,1,2,-1,-4]
nums = [-2,0,0,2,2]
result = Solution().threeSum(nums)
print(result)

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: