classSolution:defthreeSum(self, nums:[int])->[[int]]:
nums.sort()
res, k =[],0# res是列表for k inrange(len(nums)-2):if nums[k]>0:breakif k >0and nums[k]== nums[k -1]:continue
i, j = k +1,len(nums)-1while i < j:# 3. double pointer
s = nums[k]+ nums[i]+ nums[j]if s <0:
i +=1while i < j and nums[i]== nums[i -1]:
i +=1elif s >0:
j -=1while i < j and nums[j]== nums[j +1]:
j -=1else:
res.append([nums[k], nums[i], nums[j]])
i +=1
j -=1while i < j and nums[i]== nums[i -1]:
i +=1while i < j and nums[j]== nums[j +1]:
j -=1return res