15. 三数之和

作者: 拜仁的月饼 | 来源:发表于2019-10-24 09:12 被阅读0次

题目来源:https://leetcode-cn.com/problems/3sum/

思路:若要a + b + c = 0,那么如果只需要a + b = -c。这样一来,三数之和就转化为两数之和的问题了。

class Solution:
    def threeSum(self, nums: List[int]) -> List[List[int]]:
        # 设置例外情况
        L = len(nums) # 数组中元素个数,这是一个常数
        if(L < 3): # 如果数组中元素少于3个,那么直接返回None
            return None
        
        nums.sort() # 先对数组进行排序
        res = list() # 返回结果用的数组
        tmp = list()
        # 设置一个“停止点”,即排序好的数组从哪里开始是0以下和0以上的分界点
        stop = 0 # 停止点
        for i in range(L):
            if nums[i] >= 0:
                stop = i
                break
            else:
                pass
        
        # 设置左指针和右指针
        left, right = 0, L -1
        sum_ab = 0
        c = 0 # c
        
        # 开始跑
        if (nums[0] >= 0) or (nums[L - 1] <= 0): # 排除一个数组全大于0或全小于0的情况
            return None
        else:
            for i in range()

相关文章

网友评论

    本文标题:15. 三数之和

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