LeetCode/Medium

15. 3Sum

GenieLove! 2022. 3. 24. 02:15
728x90
반응형

Python

class Solution:#시간초과로 오래 걸림
    def threeSum(self, nums: List[int]) -> List[List[int]]:
        answer = []
        set_answer = set()
        nums.sort()
        j = 1
        i = 0
        k = 2
        if len(nums) < 3:
            return answer
        
        for i in range(len(nums[:-2])):
            j, k = i + 1, len(nums) - 1
            while True:
                if j >= k:
                    break
                total = nums[i] + nums[j] + nums[k]
                if total == 0:
                    if (nums[i], nums[j], nums[k]) not in set_answer:
                        set_answer.add((nums[i], nums[j], nums[k]))
                        answer.append([nums[i], nums[j], nums[k]])
                    j += 1
                    k -=1
                if total > 0:
                    k -= 1
                elif total < 0:
                    j += 1
                    

        return answer
728x90
반응형

'LeetCode > Medium' 카테고리의 다른 글

11. Container With Most Water  (0) 2022.03.28
12. Integer to Roman  (0) 2022.03.26
8. String to Integer (atoi)  (0) 2022.03.22
7. Reverse Integer  (0) 2022.03.21
3. Longest Substring Without Repeating Characters  (0) 2021.12.31