15. 3Sum (Medium) - TengnanYao/daily_leetcode GitHub Wiki

class Solution(object):
    def threeSum(self, nums):
        """
        :type nums: List[int]
        :rtype: List[List[int]]
        """
        nums.sort()
        result = set()
        n = len(nums)
        for index in range(n - 2):
            i, j = index + 1, n - 1
            while i < j:
                s = nums[i] + nums[j] + nums[index]
                if s == 0:
                    result.add((nums[index], nums[i], nums[j]))
                    i += 1
                    j -= 1
                elif s < 0:
                    i += 1
                else:
                    j -= 1
        return result