人工智能/模式识别/机器学习精华专题大数据,机器学习,人工智能机器学习和人工智能入门

16. 最接近的三数之和

2018-05-17  本文已影响5人  不爱去冒险的少年y

16. 最接近的三数之和

给定一个包括n 个整数的数组nums 和 一个目标值target。找出nums 中的三个整数,使得它们的和与target最接近。返回这三个数的和。假定每组输入只存在唯一答案。

例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.

与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).

import sys
class Solution:
     def threeSumClosest(self, nums, target):
     """ :type nums: List[int] :
            type target: int :
            rtype: int
     """
             result = sys.maxsize
             nums.sort()
             for i in range(len(nums)-2):
                 left =i+1
                 right = len(nums)-1
                 while left <right:
                         temp_sum = nums[i]+nums[left]+nums[right]
                         temp_result = abs(target-temp_sum)
                         if temp_result <result:
                                result_nums=temp_sum
                                 result = temp_result
                        if target > temp_sum:
                                 left+=1
                         elif target < temp_sum:
                                 right-=1
                         else:
                                 break
                    if temp_result==0:
                           break
           return result_nums

上一篇下一篇

猜你喜欢

热点阅读