您的位置:首页 > 其它

LeetCode #15 3Sum

2015-07-12 15:44 381 查看
class Solution:
# @param {integer[]} nums
# @return {integer[][]}
def threeSum(self, nums):
if nums == None:
return None
if len(nums) == 0:
return []

nums.sort()
intList = []
for i in range(0,len(nums)):
#repeating of first element
if i-1 >= 0 and nums[i] == nums[i-1]:
continue
p = i + 1
q = len(nums) -1
while p>=0 and p<len(nums) and q>=0 and p<q:
if nums[i] + nums[p] + nums[q] == 0:
triple = [nums[i],nums[p],nums[q]]
intList.append(triple)
p+=1
q-=1
#repeating of last two elements
while nums[p-1] == nums[p] and p<len(nums) and p<q:
p+=1
while nums[q] == nums[q+1] and q>=0 and p<q:
q-=1
elif nums[i] + nums[p] + nums[q] > 0:
q-=1
else:
p+=1

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