给定一个包括n个整数的数组nums和一个目标值target。找出nums中的3个整数,使它们的和与target最接近。返回这3个数的和。假定每组输入只存在唯一答案。例如,给定数组nums=[-1,2,1,-4]和target=1。与target最接近的3个数的和为2,即-1+2+1=2。
class Solution(object):
def threeSumClosest(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: int
"""
n=len(nums)
if (n<3):
return
nums.sort()
res=nums[0]+nums[1]+nums[2]
for i in range(n-2):
if i>0 and nums[i]==nums[i+1]:
continue
l=i+1
r=n-1
while(ltarget:
r-=1
return res
复杂度分析
● 时间复杂度:和三数之和一样,时间复杂度为O(n2)。
● 空间复杂度:不确定,取决于内部排序算法的具体实现。



