class Solution(object):
def threeSum(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
length=len(nums)
nums=sorted(nums)
res=[]
for i in range(length-2):
if i>0 and nums[i]==nums[i-1]:
continue
left=i+1
right=length-1
while(left<right):
tmp=[]
target=nums[i]
cur=nums[left]+nums[right]
if target+cur==0:
tmp.append(target)
tmp.append(nums[left])
tmp.append(nums[right])
res.append(tmp)
left+=1
right-=1
while left<length and nums[left]==nums[left-1]:
left+=1
while right>0 and nums[right]==nums[right+1]:
right-=1
elif target+cur<0:
left+=1
else:
right-=1
return res