15. 3Sum


class Solution(object):
    def threeSum(self, nums):
        """
        :type nums: List[int]
        :rtype: List[List[int]]
        """
        if len(nums)<3:
            return []
        nums.sort()
        res=set()
        for i,v in enumerate(nums[:-2]):
            if i>0 and v==nums[i-1]:
                continue
            d={}
            for x in nums[i+1:]:
                if x not in d:
                    d[-v-x]=2;
                else:
                    res.add((v,-v-x,x))
        return map(list,res)
            
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 注意要跳过重复。把每个element 看成三个数中的一个,然后在这个数后面剩余的数里,从最大和最小的数开始做2sum.
    沉睡至夏阅读 145评论 0 0
  • Medium刷狗家题库看到的类似的,这个题里面去duplicates的地方值得好好想一想。 为什么我们只在if (...
    greatseniorsde阅读 139评论 0 0
  • 原题 给出一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三元组...
    Jason_Yuan阅读 1,374评论 0 1
  • Given an array S of n integers, are there elements a, b, ...
    叶孤陈阅读 590评论 0 0
  • 前两天和大冬还有一帮朋友去KTV,喝多了大冬就坐到我身边,让我帮他分析为什么总是追不到他的女神。 大冬的女神叫佳佳...
    西西里的绒小鱼阅读 737评论 4 9