题目:给一个list,一个target。找list中3个数相加最接近target的值。
class Solution(object):
def threeSumClosest(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: int
"""
nums.sort()
m=len(nums)
a=[]
minwater=nums[0]+nums[1]+nums[2]
for i in range(m-2):
j=i+1
k=m-1
while(j<k):
water=(nums[i]+nums[j]+nums[k])
if abs(target-water)<=abs(target-minwater):
minwater=water
if minwater==target:
return target
if water>target:
k-=1
else:
j+=1
return minwater
根据3sum 改进,遍历的思路是一样的。改动一个判断来寻找最接近target的值。Accepted。