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

15. 3Sum

时间:2017-07-04 00:59:27      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:lan   desc   example   ret   pointer   object   blank   obj   number   

https://leetcode.com/problems/3sum/#/description

 

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: 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]
]

 

 

 

Sol:

 

class Solution(object):
    def threeSum(self, nums):
        """
        :type nums: List[int]
        :rtype: List[List[int]]
        """
        # sort first and then use two pointers to push upon the mid point
        # skip repeated numbers
        # Space O(n^2), Time O(1)
        result = []
        if len(nums) < 3:
            return result
        
        sorted(nums)
        target = 0
        for i in range(len(nums) - 1):
            if i > 0 and nums[i] == nums[i-1]:
                continue
            j = i + 1
            k = len(nums) - 1
            while j < k:
                if nums[i] + nums[j] + nums[k] < target:
                    j += 1
                    while nums[j] == nums[j-1] and j < k:
                        j += 1
                elif nums[i] + nums[j] +nums[k] > target:
                    k -= 1
                    while nums[k] == nums[k+1] and j < k:
                        k -= 1
                else:
                    result.append([nums[i], nums[j], nums[k]])
                    j += 1
                    k -= 1
                    while nums[j] == nums[j-1] and j < k:
                        j += 1
                    while nums[k] == nums[k+1] and j < k:
                        k -= 1
                    
                    
                

 

15. 3Sum

标签:lan   desc   example   ret   pointer   object   blank   obj   number   

原文地址:http://www.cnblogs.com/prmlab/p/7113555.html

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