task

作者: Eline_569f | 来源:发表于2019-08-10 12:07 被阅读0次

    task1.python实现三数之和,(正整数)

    class threesum:

        def threeSum(self, nums):

            if len(nums) < 3:

                return []

            nums.sort()

            last_number = None

            result = []

            for i in range(0, len(nums)-2):

                if nums[i] > 0:

                    break

                elif nums[i] == last_number:

                    continue

                l = i+1

                r = len(nums)-1

                while l < r:

                    cur_sum = nums[i] + nums[l] + nums[r]

                    if cur_sum < 0:

                        l += 1

                    elif cur_sum > 0:

                        r -= 1

                    else:

                        result.append([nums[i], nums[l], nums[r]])

                        while l<r and nums[l] == nums[l+1]:

                            l += 1

                        while l<r and nums[r] == nums[r-1]:

                            r -= 1

                        l += 1

                last_number = nums[i]

            return result

    相关文章

      网友评论

          本文标题:task

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