python写算法题:leetcode: 15. 3Sum

来源:互联网 发布:做什么网络兼职赚钱 编辑:程序博客网 时间:2024/06/11 09:17

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

class Solution(object):    def match(self, nums, ind0):        ind1=ind0+1        ind2=len(nums)-1        res=[]        while ind1<len(nums)-1 and ind2>ind1:            if nums[ind1]+nums[ind2]>-nums[ind0]:                ind2-=1            else:                if nums[ind1]+nums[ind2]==-nums[ind0]:                    res.append([nums[ind0],nums[ind1],nums[ind2]])                    while ind1<len(nums)-1 and nums[ind1]==nums[ind1+1]: ind1+=1                ind1+=1        return res    def threeSum(self, nums):        """        :type nums: List[int]        :rtype: List[List[int]]        """        if len(nums)<3: return []        nums.sort()        ind0=0        res=[]        while ind0<len(nums)-2:            res+=self.match(nums, ind0)            while ind0<len(nums)-1 and nums[ind0]==nums[ind0+1]: ind0+=1            ind0+=1        return res                


原创粉丝点击