Description
3Sum Closet
Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each input would have exactly one solution.
Code
class Solution(object):
def threeSumClosest(self, nums, target):
num = len(nums)
nums.sort()
rst =nums[0] +nums[1] + nums[2]
for i in range(num - 2):
j = i + 1
k = num - 1
while j != k:
sum = nums[i] + nums[j] + nums[k]
if sum == target:
return sum
if(abs(sum - target) < abs(rst - target)):
rst = sum
if sum < target:
j+=1
elif sum > target:
k -= 1
return rst
Review
这道题中也用了将两个变量分别初始化为区间头尾,根据一定条件将头向后移动,或将尾向前移动的方法。暂时没有总结出套路来。