1.给定一个数组和目标数,求数组中三个数之和最接近目标数的和,假设数组至少有一组和满足条件。
nums.sort()
l = len(nums)
sum = nums[0] + nums[1] + nums[2]
for i in range(0,l - 2):
if nums[i] == nums[i + 1] : continue
next = i + 1
end = l - 1
while next < end :
threeSum = nums[i] + nums[next] + nums[end]
if abs(threeSum - target) < sum :
sum = threeSum
if threeSum > target:
end -= 1
elif threeSum < target:
next += 1
else:
return target
return sum
算法流程是: 先排序数组, 在用双指针移动检索数组。