老题目
之前我自己写好像是用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