题解 | #牛牛的三元组问题#

牛牛的三元组问题

https://www.nowcoder.com/practice/72c6d735fb1144a2ba162976a4510839

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param nums int整型一维数组 
# @return int整型二维数组
#
class Solution:
    def findTriplets(self , nums: List[int]) -> List[List[int]]:
        # write code here
        res = []
        n = len(nums)
        nums.sort()
        for i in range(n-2):
            if i>0 and nums[i] == nums[i-1]:
                continue
            if nums[i] + nums[i+1] + nums[i+2] > 0:
                break
            elif nums[i] + nums[-1] + nums[-2] < 0:
                continue
            j,k = i+1,n-1
            while j < k:
                if nums[i] + nums[j] + nums[k] == 0:
                    res.append([nums[i],nums[j],nums[k]])
                    j += 1
                    k -= 1
                    while j < k and nums[j] == nums[j-1]:
                        j += 1
                    while j < k and nums[k] == nums[k+1]:
                        k -= 1
                elif nums[i] + nums[j] + nums[k] > 0:
                    k -= 1
                    while j < k and nums[k] == nums[k+1]:
                        k -= 1
                else:
                    j += 1
                    while j < k and nums[j] == nums[j-1]:
                        j += 1
        res = sorted(res)
        return res

三数之和 最后排个序

全部评论

相关推荐

纯朴的商业竞争手段
职场不咸鱼:看来商家也喜欢jd
投递美团等公司6个岗位 > 京东美团大战,你怎么看?
点赞 评论 收藏
分享
04-14 20:10
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务