## 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可## # @param num int整型一维数组 # @return int整型二维数组#classSolution:defthreeSum(self,arr: List[int]) -> List[List[int]]: arr.sort() N =len(arr) ret = []for i inrange(N):# 去重1if i >0and arr[i]== arr[i -1]:continue# 下面相当于求“两数之和” target =-arr[i]# 初始化双指针:闭区间 l, r = i +1, N -1# 退出循环时 l == rwhile l < r: v = arr[l]+ arr[r]if v < target: l +=1elif v > target: r -=1else: ret.append([arr[i], arr[l], arr[r]])# 去重2while l < r and arr[l]== arr[l +1]: l +=1while l < r and arr[r]== arr[r -1]: r -=1# 退出循环时,l,r 停在最后一个相同的数字上,所以还要走一步 l +=1 r -=1return ret