LeetCode 15. 3Sum

2018-11-22  本文已影响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
上一篇 下一篇

猜你喜欢

热点阅读