题解 | #牛牛的三元组问题#
牛牛的三元组问题
https://www.nowcoder.com/practice/72c6d735fb1144a2ba162976a4510839
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param nums int整型一维数组 # @return int整型二维数组 # class Solution: def findTriplets(self , nums: List[int]) -> List[List[int]]: # write code here res = [] n = len(nums) nums.sort() for i in range(n-2): if i>0 and nums[i] == nums[i-1]: continue if nums[i] + nums[i+1] + nums[i+2] > 0: break elif nums[i] + nums[-1] + nums[-2] < 0: continue j,k = i+1,n-1 while j < k: if nums[i] + nums[j] + nums[k] == 0: res.append([nums[i],nums[j],nums[k]]) j += 1 k -= 1 while j < k and nums[j] == nums[j-1]: j += 1 while j < k and nums[k] == nums[k+1]: k -= 1 elif nums[i] + nums[j] + nums[k] > 0: k -= 1 while j < k and nums[k] == nums[k+1]: k -= 1 else: j += 1 while j < k and nums[j] == nums[j-1]: j += 1 res = sorted(res) return res
三数之和 最后排个序