题目来源于LeetCode
给你一个整数数组 nums
,判断是否存在三元组 [nums[i], nums[j], nums[k]]
满足 i != j
、i != k
且 j != k
,同时还满足 nums[i] + nums[j] + nums[k] == 0
。请
你返回所有和为 0
且不重复的三元组。
注意:答案中不可以包含重复的三元组。
# 三数之和 a+b+c=0nums = [-1, 0, 1, 2, -1, -4]nums = sorted(nums)arr = list()
n = len(nums)
for i in range(n):if i > 0 and nums[i] == nums[i - 1]:continuetarget = -nums[i]end = n - 1for start in range(i + 1, n):if start > i + 1 and nums[start] == nums[start - 1]:continuewhile start < end and nums[start] + nums[end] > target:end -= 1if start == end:breakif nums[start] + nums[end] == target:arr.append([nums[i], nums[start], nums[end]])print(arr) # [[-1, -1, 2], [-1, 0, 1]]