classSolution: defthreeSum(self, nums: List[int]) -> List[List[int]]: n = len(nums) result = list() for i inrange(n): for j inrange(i+1, n): for k inrange(j+1, n): if nums[i]+nums[j]+nums[k] == 0: tmp = [nums[i], nums[j], nums[k]] tmp.sort() if tmp in result: continue result.append(tmp) return result
classSolution: defthreeSum(self, nums: List[int]) -> List[List[int]]: n = len(nums) result = list() nums.sort()
for i inrange(n): if i > 0and nums[i] == nums[i-1]: continue # print(n,i) target = -nums[i] k = n - 1 for j inrange(i+1, n): # 需要保证j和前一个不同 if j > i+1and nums[j] == nums[j-1]: continue # 选定i,j后选k while j < k and nums[k] + nums[j] > target: k = k - 1 if j == k: break if nums[k] + nums[j] == target: result.append([nums[i],nums[j],nums[k]]) return result