LeetCode 15. 3Sum

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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容