classSolution(object): defthreeSum(self, nums): """ :type nums: List[int] :rtype: List[List[int]] """ nums = sorted(nums) rnums = [] for i in range(len(nums)): for j in range(i+1, len(nums)): for k in range(j+1, len(nums)): if nums[i] + nums[j] + nums[k] == 0: flag = 1 for a in rnums: if a == [nums[i], nums[j], nums[k]]: flag = 0 break if flag: rnums.append([nums[i], nums[j], nums[k]])
defthreeSum(self, nums): """ :type nums: List[int] :rtype: List[List[int]] """ nums = sorted(nums) rnums = [] for i in range(len(nums)): if nums[i] > 0: break for j in range(i+1, len(nums)): if nums[i] + nums[j] > 0: break for k in range(j+1, len(nums)): if nums[i] + nums[j] + nums[k] > 0: break if nums[i] + nums[j] + nums[k] == 0: flag = 1 for a in rnums: if a == [nums[i], nums[j], nums[k]]: flag = 0 break if flag: rnums.append([nums[i], nums[j], nums[k]])
defthreeSum(self, nums): """ :type nums: List[int] :rtype: List[List[int]] """ nums.sort() rnums = [] for i in range(len(nums)): if i == 0or nums[i] > nums[i-1]: l = i + 1 r = len(nums) - 1 while l < r: s = nums[i] + nums[l] + nums[r] if s == 0: rnums.append([nums[i], nums[l], nums[r]]) l += 1 r -= 1 while l < r and nums[l] == nums[l-1]: l += 1 while r > l and nums[r] == nums[r+1]: r -= 1 elif s > 0: r -= 1 else: l += 1