Soohan-Kim / Leetcode

0 stars 0 forks source link

[HW 3] 3Sum #15. #31

Open Soohan-Kim opened 3 weeks ago

Soohan-Kim commented 3 weeks ago

https://leetcode.com/problems/3sum/description/

Soohan-Kim commented 3 weeks ago
class Solution:
    def threeSum(self, nums: List[int]) -> List[List[int]]:
        nums.sort()

        ret = set()

        for i in range(len(nums)-2):
            if nums[i] > 0:
                break

            l = i + 1
            r = len(nums)-1
            while l < r:
                s = nums[l] + nums[i] + nums[r]
                if s < 0:
                    l += 1
                elif s > 0:
                    r -= 1
                else:
                    triplet = (nums[l], nums[i], nums[r])
                    ret.add(triplet)
                    l += 1
                    r -= 1

        return ret