原题地址:http://oj.leetcode.com/problems/3sum-closest/
题意:数组中每三个元素进行求和,找出所有和中大小最接近target的和,并返回这个和与target之间的差值。
解题思路:使用一个变量mindiff来监测和与target之间的差值,如果差值为0,直接返回sum值。
代码:
class Solution:
# @return an integer
def threeSumClosest(self, num, target):
num.sort()
mindiff=100000
res=0
for i in range(len(num)):
left=i+1; right=len(num)-1
while left<right:
sum=num[i]+num[left]+num[right]
diff=abs(sum-target)
if diff<mindiff: mindiff=diff; res=sum
if sum==target: return sum
elif sum<target: left+=1
else: right-=1
return res
[leetcode]3Sum Closest @ Python,码迷,mamicode.com
时间: 2024-10-15 01:15:46