# Sort the array
# loop from i = 0
# then left=i+1 Right=len (nums)-1
# try Nums[i]-(nums[left]+nums[right]) = 0
#
Classsolution (object):defthreesum (Self, nums):""": Type Nums:list[int]: Rtype:list[list[int]"""Res=list () Nums.sort ()ifLen (nums) <= 2: returnRes forIndexinchRange (len (nums)-2): ifindex = = 0orNums[index] > Nums[index-1]: Left=index+1 Right=len (nums)-1 whileLeft <Right :ifNums[left] + nums[right] = =-Nums[index]: Res.append ([nums[index],nums[left],nums[right]]) left+=1 Right-=1
#ensure No repeat Value whileLeft<right andNums[left] = = Nums[left-1]: Left+=1 whileLeft < Right andNums[right] = = nums[right+1]: Right-=1elifNums[left] + Nums[right] <-Nums[index]: whileLeft <Right:left+=1ifNums[left]! = nums[left-1]: Break Else: whileLeft <Right:right-=1ifNums[right]! = nums[right+1]: Break returnRes
@link http://www.cnblogs.com/zuoyuan/p/3699159.html
Leetcode 3Sum python