您的位置:首页 > 其它

15 3Sum

2015-06-19 13:41 239 查看
class Solution:

# @param {integer[]} nums

# @return {integer[][]}

def threeSum(self, nums):

"O(n**2), for k-sum, time complexity is O(max{nlogn,n**(k-1)})"

nums.sort()

res,l=[],len(nums)

for i in range(l):

if i>0 and nums[i]==nums[i-1]:

continue

m,r=i+1,l-1

while m<r:

tmp=nums[i]+nums[m]+nums[r]

if tmp<0:

m+=1

elif tmp>0:

r-=1

else:

res.append([nums[i],nums[m],nums[r]])

while m<r and nums[m]==nums[m+1]: m+=1

while m<r and nums[r]==nums[r-1]: r-=1

m,r=m+1,r-1

return res
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: