原題地址: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