此题看题解
class Solution:
def threeSum(self, nums: List[int]) -> List[List[int]]:
nums.sort()
res=[]
for i in range(len(nums)):
if nums[i]>0:
return res
if i>0 and nums[i]==nums[i-1]:#这个地方必须加i>0,否则输入[0,0,0],将会得[]
continue
l,r=i+1,len(nums)-1
while l<r:
if nums[i]+nums[l]+nums[r]==0:
res.append([nums[i],nums[l],nums[r]])
while l<r and nums[l]==nums[l+1]:
l=l+1
while l<r and nums[r]==nums[r-1]:
r=r-1
l=l+1
r=r-1
elif nums[i]+nums[l]+nums[r]<0:
l=l+1
else:
r=r-1
return res