15. 3Sum【M】【28】

原创 2016年05月31日 14:25:05

Given an array S of n integers, are there elements abc in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.

Note:

  • Elements in a triplet (a,b,c) must be in non-descending order. (ie, a ≤ b ≤ c)
  • The solution set must not contain duplicate triplets.

    For example, given array S = {-1 0 1 2 -1 -4},

    A solution set is:
    (-1, 0, 1)
    (-1, -1, 2)


Subscribe to see which companies asked this question


关键在于两个指针,如果和小于零,左边的坐标增长,反之右边的左边增长

class Solution(object):
    def threeSum(self, nums):

        nums.sort()
        #print nums
        res = []
        minn = 1 << 31

        for i in xrange(len(nums)):
            a = 0
            b = len(nums) - 1
            while a < i and b > i:
                print i,a,b,nums[a],nums[i],nums[b]
                if nums[a] + nums[b] + nums[i] == 0:
                    if [nums[a],nums[i],nums[b]] not in res:
                        res += [nums[a],nums[i],nums[b]],
                    a += 1
                    b -= 1
                    continue
                if nums[a] + nums[b] + nums[i] <= 0:
                    a += 1
                else:
                    b -= 1

        '''
        #nums = set(nums)
        #print nums
        minn = 1 << 31
        #print minn
        res = []

        per = itertools.combinations(nums,3)
        for i in per:
            #print i
            summ = sum(i)#i[0] + i[1] + i[2]
            if summ == 0 and i not in res:
                res.append(i)

        #for i in xrange(len(nums)):
        #    print nums[i]
        '''
        return res

        """
        :type nums: List[int]
        :rtype: List[List[int]]
        """


LeetCode 15 3Sum (C,C++,Java,Python)

Problem: Given an array S of n integers, are there elements a, b, c in S such that a + b + c = ...
  • runningtortoises
  • runningtortoises
  • 2015年05月09日 21:06
  • 4057

[LeetCode]15.3Sum

【题目】 3Sum  Total Accepted: 6032 Total Submissions: 35898My Submissions Given an array S of...
  • SunnyYoona
  • SunnyYoona
  • 2014年01月18日 11:08
  • 3282

【LeetCode】3Sum 解题报告

这道题凭我现有知识实在解答不上来,只好网上搜索解法,才发现 K Sum 是一类问题,但是网上没有比较简洁的代码,我想对于初学者来说,可能还是想先看看这道题怎么解,然后才有兴趣去看其扩展吧。 【题目】 ...
  • ljiabin
  • ljiabin
  • 2014年10月30日 16:00
  • 28583

15. 3sum Python 实现

3sum问题描述: Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? ...
  • banana1006034246
  • banana1006034246
  • 2017年08月21日 15:43
  • 150

LeetCode 15 — 3Sum(C++ Java Python)

题目:http://oj.leetcode.com/problems/3sum/ Given an array S of n integers, are there elements a, b, ...
  • dragon_dream
  • dragon_dream
  • 2014年03月20日 21:22
  • 4326

LeetCode 15 - 3Sum

一、问题描述 Description:Description: Given an array S of n integers, are there elements a, b, c ...
  • lisong694767315
  • lisong694767315
  • 2015年05月19日 20:03
  • 3439

leetcode解题之 15. 3Sum Java版(结果为目标值的三个数字)

leetcode解题之 15. 3Sum Java版(结果为目标值的三个数字)
  • mine_song
  • mine_song
  • 2017年04月06日 18:29
  • 249

15. 3Sum (python)

Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all u...
  • qq_28119401
  • qq_28119401
  • 2016年10月30日 16:15
  • 232

LeetCode(15) 3Sum

解决这道题的算法: 第一步:对数组进行,以快速寻找满足条件的两个数。 第二步:首先对于a[0],j指向其后第一个,k指向最后一个;如果 ...
  • guanzhongshan
  • guanzhongshan
  • 2015年07月16日 12:04
  • 526

(java)Leetcode-15. 3Sum

Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all ...
  • u012848330
  • u012848330
  • 2016年05月25日 17:53
  • 364
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:15. 3Sum【M】【28】
举报原因:
原因补充:

(最多只允许输入30个字)