这题考验的是two pointers,也就是从2头开始进行的那种。这题相对算简单。代码如下:
if len(nums) < 3:
return []
alloflist = []
nums.sort()
for i in range(len(nums)):
if nums[i] <= 0:
j = i + 1
k = len(nums) - 1
while j < k:
if nums[j] + nums[k] < -nums[i]:
j = j + 1
elif nums[j] + nums[k] > -nums[i]:
k = k - 1
else:
if [nums[i], nums[j], nums[k]] not in alloflist:
alloflist.append([nums[i], nums[j], nums[k]])
j = j + 1
k = k - 1
else:
break
return alloflist