为了去重要先对数组进行排序

class Solution:
    def threeSum(self, nums):
        """
        :type nums: List[int]
        :rtype: List[List[int]]
        """
        
        nums.sort()
        lenn = len(nums)
        res = []
        for i in range(lenn-2):
            if nums[i] > 0:
                break
            if i>=1 and nums[i] == nums[i-1]:
                continue
            j = i + 1 
            k = lenn-1
            while j<k:
                sum1 = nums[j] + nums[k]
                if  sum1 == -nums[i]:
                     res.append([nums[i],nums[j],nums[k]])
                     while j < k and nums[j+1] == nums[j]: j+=1
                     while j <k and nums[k] == nums[k-1]: k-=1
                     j+=1
                     k-=1
                elif sum1 > -nums[i]:
                    k-=1
                else:
                    j+=1
        
        return res
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐