题解 | #三数之和#
三数之和
https://www.nowcoder.com/practice/345e2ed5f81d4017bbb8cc6055b0b711?tpId=295&tqId=731&ru=/exam/oj&qru=/ta/format-top101/question-ranking&sourceUrl=%2Fexam%2Foj
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param num int整型一维数组 # @return int整型二维数组 # class Solution: def threeSum(self , num: list[int]) -> list[list[int]]: # write code here if len(num)<3: return [] L=[] L2=[] num.sort() for l in range(len(num)): target = -num[l] #将target的值的相反数从L列表中移除出来 num.remove(-target) i=0 j=len(num)-1 #如果i<j的话进行比较 while i < j: if num[i]+num[j]==target: x=[num[i],num[j],-target] x.sort() #如果已经添加过了,就不添加 if x not in L2: L2.append(x.copy()) #继续移动左右指针,到下个位置进行比较 i+=1 j-=1 elif num[i]+num[j]>target: j=j-1 elif num[i]+num[j]<target: i=i+1 #比较完记得把移除的元素加回到列表中 num.insert(l,-target) #L2 =list(set(L2) return L2