3 sum


description
accepted answer

class Solution(object): def threeSum(self, nums): """ :type nums: List[int] :rtype: List[List[int]] """ res = [] nums.sort() for i, a in enumerate(nums): # we dont want duplicates if i > 0 and a == nums[i - 1]: continue l, r = i+1, len(nums) - 1 while l < r: threeSum = a + nums[l] + nums[r] # too big, go left to go small if threeSum > 0: r -= 1 elif threeSum < 0: # too small, go right to go small l += 1 else: # add res.append([a, nums[l], nums[r]]) # go left to go to another iteration l += 1 # go left if duplicate while nums[l] == nums[l - 1] and l < r: l += 1 return res