- 문제 링크: https://leetcode.com/problems/3sum/
- 난이도: Medium
합이 0이 되는 모든 세쌍(Triplet)을 중복 없이 반환하는 문제다
정렬 후 투 포인터를 응용하면 된다
class Solution:
def threeSum(self, nums: List[int]) -> List[List[int]]:
ret = set()
nums.sort()
for i in range(len(nums) - 2):
left, right = i+1, len(nums)-1
while left < right:
sum = nums[left] + nums[right]
if sum + nums[i] == 0:
ret.add((nums[i], nums[left], nums[right]))
left += 1
right -= 1
elif sum + nums[i] > 0:
right -= 1
else:
left += 1
return [list(x) for x in ret]
반응형
'Online Judge > LeetCode' 카테고리의 다른 글
[LeetCode][Python] 42. Trapping Rain Water (0) | 2024.09.08 |
---|---|
[LeetCode][Python] 11. Container With Most Water (0) | 2024.09.08 |
[LeetCode][Python] 167. Two Sum II - Input Array Is Sorted (0) | 2024.09.08 |
[LeetCode][Python] 125. Valid Palindrome (0) | 2024.09.08 |
[LeetCode][Python] 128. Longest Consecutive Sequence (0) | 2024.09.08 |