p
class Solution: def is_same(self,lit,l): """ lit:最终存储的可能数组 l:可能的答案 判断l是否已经存在,手动去重(可能时间要比代码里去重长) """ for i in range(len(lit)): if lit[i] == l: return False return True def threeSum(self , num: List[int]) -> List[List[int]]: # write code here num.sort() n = len(num) res = []#存储最终数组 for i in range(n-2): if num[i] <= 0: left = i+1 right = n-1 while left<right: if num[left] + num[right] == abs(num[i]): r = [num[i],num[left],num[right]] if self.is_same(res,r): res.append(r) left +=1 right -= 1 elif num[left] + num[right] < abs(num[i]): left +=1 else: right -= 1 else: continue return res