zoukankan      html  css  js  c++  java
  • 59. 最接近的三数之和

    59. 最接近的三数之和

    中文English

    给一个包含 n 个整数的数组 S, 找到和与给定整数 target 最接近的三元组,返回这三个数的和。

    样例

    例1:

    输入:[2,7,11,15],3
    输出:20
    解释:
    2+7+11=20
    

    例2:

    输入:[-1,2,1,-4],1
    输出:2
    解释:
    -1+2+1=2
    

    挑战

    O(n^2) 时间, O(1) 额外空间。

    注意事项

    只需要返回三元组之和,无需返回三元组本身

     
     
    输入测试数据 (每行一个参数)如何理解测试数据?
    class Solution:
        """
        @param numbers: Give an array numbers of n integer
        @param target: An integer
        @return: return the sum of the three integers, the sum closest target.
        """
        def threeSumClosest(self, numbers, target):
            # write your code here
            res = []
            d = []
            numbers.sort()
            for i in range(len(numbers)):
                if i == 0:
                    d.append([numbers[i]])
                else:
                    for j in range(len(d)):
                        a = d[j] + [numbers[i]]
                        d.append(d[j] + [numbers[i]])
    
                        if a not in res and len(a) == 3:
                            res.append(a)
                    d.append([numbers[i]])
    
                    
            
            p = 2**32
            r = 0
            for z in res:
                if abs(sum(z) - target) < p:
                    p = abs(sum(z) - target)
                    r = sum(z)
            return r

    注:lintcode未通过,你的代码运行时间超过了限制,检查你的时间复杂度。TLE通常是由死循环造成的,思考一下你的时间复杂度是否是最优的。

  • 相关阅读:
    聊聊 Java8 以后各个版本的新特性
    如何使用SpringBoot封装自己的Starter
    Git原理入门解析
    Linux磁盘管理:LVM逻辑卷的拉伸及缩减
    LVM在线扩容
    Ubuntu setup Static IP Address
    ubuntu修改主机名
    user.sh
    升级Dell的R810固件版本
    DSET收集ESXi硬件日志
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12828993.html
Copyright © 2011-2022 走看看