码迷,mamicode.com
首页 > 其他好文 > 详细

15、三数之和 #leetcode

时间:2019-04-17 20:59:33      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:self   []   一个   object   sel   return   elf   集合   pre   

给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。

注意:答案中不可以包含重复的三元组。

例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],

满足要求的三元组集合为:
[
  [-1, 0, 1],
  [-1, -1, 2]
]

lass Solution(object):
def threeSum(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""

    nums.sort()
    res =[]
    i = 0
    for i in range(len(nums)):
        if i == 0 or 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:
                    res.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
    return res

15、三数之和 #leetcode

标签:self   []   一个   object   sel   return   elf   集合   pre   

原文地址:https://www.cnblogs.com/xxupup/p/10726004.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!