题目
思路
双指针。
控制一个数字,变化另外两个数字,使得sum不断接近target。
代码
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
numbers.sort()
length = len(numbers)
bestSum = 10000000
for i in range(length):
left = i + 1; right = length - 1
while left < right:
sum = numbers[i] + numbers[left] + numbers[right]
if abs(target - bestSum) > abs(target - sum):
bestSum = sum
if sum > target: right -= 1
else: left += 1
return bestSum