老題目
之前我自己寫好像是用set來去重複
這次試著寫了一堆臭臭
好像也沒比較快
==
def threeSum(self, nums: List[int]) -> List[List[int]]:
n = len(nums)
ans = []
nums.sort()
prev_numi = None
for i in range(n-2):
if nums[i]==prev_numi:
continue
l, r = i+1, n-1
res = -nums[i]
while l<r:
if nums[l]+nums[r] == res:
if len(ans)==0 or [nums[i],nums[l],nums[r]] != ans[-1]:
ans.append([nums[i],nums[l],nums[r]])
l+=1
r-=1
elif nums[l]+nums[r] < res:
l+=1
else:
r-=1
prev_numi = nums[i]
return ans