classSolution: defcompareArr(self,arr): unique_str = [] res = [] for x in arr: new_str = ''.join(map(str,sorted(x))) if new_str notin unique_str: unique_str.append(new_str) res.append(x) return res defthreeSum(self, nums): arr = [] count = 0 for i,a inenumerate(nums[:-2]): for b in nums[i+1:-1]: for c in nums[i+2+count:]: if a+b+c == 0: arr.append([a,b,c]) count = count + 1 count = 0
classSolution: defthreeSum(self,nums): nums = sorted(nums) length = len(nums) res = [] ifnot nums or nums[0]>0or length<3: return [] for i,a inenumerate(nums[:-2]): if a>0: return res if i>0and nums[i-1] == a: continue j = i + 1 k = length - 1 while(j<k): l = nums[j] r = nums[k] total = a+l+r if total == 0: res.append([a,l,r]) while j < k and nums[k-1] == nums[k]: k -= 1 while j<k and nums[j+1]==nums[j]: j += 1 k-=1 j+=1 elif total >=0: k -= 1 elif total <= 0: j += 1 return res