• threesum


    算法题

    问题描述:
    在一些给定的数中,找到三个数,他们相加的和是0,并且这三个数的组合是不能重复的

    例子:

    input

    [-1, 0, -1, 2, 1]

    Output

    [[-1, 1 ,0], [-1, -1, 2]]

    解法:

    Python代码:

    Class threesum(object):
      def sumthree(self, nums):
        nums.sort() #先对nums数组进行排序,这里的nums是一个list变量

      Numlist = []

      for i in range(len(nums) -2):
        if i !=0 and nums[i] == nums[i-1]:

          Continue

        J,k = i+1, len(nums)-1

        While j <k:

          S = nums[i] +nums[j] + nums[k]

          If s>0 or (k < len(nums) -1 and nums[k ] == nums[k+1])

             K -= 1

          Elif s<0 or (k>i +1 and nums[j] == nums[j -1])

              J -= 1

          Else:

            Numliist.append([nums[i], nums[j], nums[k]])

            J += 1

            K += 1

      Return numlist

  • 相关阅读:
    poj1862---变形虫(贪心)
    poj1833---字典序算法
    poj1799---解析几何
    poj1665
    poj1663---纯粹找规律
    poj1658
    poj1657---chessboard
    poj1656---数黑格子
    poj1617---columnar encryption
    查找两个文件的相同之处,不同之处
  • 原文地址:https://www.cnblogs.com/whatyouknow123/p/6644874.html
Copyright © 2020-2023  润新知