美文网首页
LeetCode 15. 3Sum

LeetCode 15. 3Sum

作者: 费城的二鹏 | 来源:发表于2018-11-22 15:27 被阅读5次

3Sum

卡边过。。。

需要考虑空间换时间的写法

class Solution:
    nums = []
    length = 0

    def threeSum(self, nums):
        """
        :type nums: List[int]
        :rtype: List[List[int]]
        """
        nums = sorted(nums)
        length = len(nums)
        print(length)
        result = []
        for i in range(length - 2):
            if i > 0 and nums[i] == nums[i - 1]:
                continue
            j = i + 1
            k = length - 1
            while j < k:
                listt = [nums[i], nums[j], nums[k]]
                summ = sum(listt)
                if summ > 0:
                    k -= 1
                elif summ < 0:
                    j += 1
                else:
                    result.append(listt)
                    k -= 1
                    j += 1
                    while j < k and nums[k] == nums[k + 1]:
                        k -= 1 
                    while j < k and nums[j] == nums[j - 1]:
                        j += 1
        
        return result

相关文章

网友评论

      本文标题:LeetCode 15. 3Sum

      本文链接:https://www.haomeiwen.com/subject/qlmlqqtx.html