zoukankan      html  css  js  c++  java
  • [LeetCode]题15:3Sum

    第一次解:

            res = []
            nums.sort()
            if len(nums)<3:return []
            for i in range(len(nums)-2):
                left = i+1
                right = len(nums)-1
                while left < right:
                    val = nums[i]+nums[left]+nums[right]
                    if val==0 and [nums[i],nums[left],nums[right]] not in res:
                        res.append([nums[i],nums[left],nums[right]])
                    elif val<0:
                        left += 1
                    else:
                        right -=1
            return res

    超时。。。然后调整

    nums.sort()
            res = []
            
            for i in range(len(nums) - 2):
                if i > 0 and nums[i-1] == nums[i]: continue
                l, r = i + 1, len(nums) - 1
                while l < r:
                    s = nums[i] + nums[l] + nums[r]
                    if s == 0:
                        res.append([nums[i], nums[l], nums[r]])
                        l += 1; r -= 1
                        while l < r and nums[l] == nums[l-1]: l += 1
                        while l < r and nums[r] == nums[r+1] : r -= 1
                    elif s < 0:
                        l += 1
                    else:
                       r -= 1
            return res

    acc了

  • 相关阅读:
    Access-自定义控件TabControl
    Excel公式-求最低价网站名字
    Excel图表-太极图
    Excel图表-"DNA"图
    VB中的GDI编程-2 画笔
    leetcode
    leetcode
    leetcode
    leetcode
    leetcode
  • 原文地址:https://www.cnblogs.com/a-little-v/p/9371885.html
Copyright © 2011-2022 走看看