题解 | #数组中相加和为0的三元组#
数组中相加和为0的三元组
http://www.nowcoder.com/practice/345e2ed5f81d4017bbb8cc6055b0b711
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param num int整型一维数组 # @return int整型二维数组 # class Solution: def threeSum(self , num: List[int]) -> List[List[int]]: # write code here num = sorted(num) res = [] for i in range(len(num)): low = i + 1 high = len(num) - 1 a = num[i] while low < high: b = num[low] c = num[high] if (a + b + c) == 0: if [a, b, c] not in res: res.append([a, b, c]) while high > 0 and num[high] == num[high - 1]: high -= 1 high -= 1 while low < len(num) - 1 and num[low] == num[low + 1]: low += 1 low += 1 elif (a + b + c) > 0: while high > 0 and num[high] == num[high - 1]: high -= 1 high -= 1 elif (a + b + c) < 0: while low < len(num) - 1 and num[low] == num[low + 1]: low += 1 low += 1 return res