为了去重要先对数组进行排序
class Solution:
def threeSum(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
nums.sort()
lenn = len(nums)
res = []
for i in range(lenn-2):
if nums[i] > 0:
break
if i>=1 and nums[i] == nums[i-1]:
continue
j = i + 1
k = lenn-1
while j<k:
sum1 = nums[j] + nums[k]
if sum1 == -nums[i]:
res.append([nums[i],nums[j],nums[k]])
while j < k and nums[j+1] == nums[j]: j+=1
while j <k and nums[k] == nums[k-1]: k-=1
j+=1
k-=1
elif sum1 > -nums[i]:
k-=1
else:
j+=1
return res