问题
解答
思路与三数之和相似,具体实现参考以下代码
class Solution:
def threeSum(self,nums,target):
n=len(nums)
result=float("inf")
if(not nums or n<3):
return False
nums.sort() #sort nums
for i in range(n):
if(i>0 and nums[i]==nums[i-1]):
continue
L=i+1 #left point
R=n-1 #right point
while(L<R):
temp=nums[i]+nums[L]+nums[R]
if(temp==target):
return temp
if abs(result-target) > abs(temp-target):
result = temp
if temp > target:
R = R-1
elif temp < target:
L = L+1
return result