Skip to content

Commit 02b88fe

Browse files
committed
最接近的三数之和
1 parent 18d1a34 commit 02b88fe

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

3sum_closest.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# -*- coding: utf-8 -*-
2+
3+
class Solution:
4+
"""
5+
@param numbers: Give an array numbers of n integer
6+
@param target : An integer
7+
@return : return the sum of the three integers, the sum closest target.
8+
"""
9+
def threeSumClosest(self, numbers, target):
10+
# write your code here
11+
ret = -1
12+
min_diff = 2147483647
13+
numbers.sort() # 先排序,排序后两个指针从头尾向中间找。
14+
for i in xrange(len(numbers) - 2):
15+
start, end = i + 1, len(numbers) - 1
16+
while start < end:
17+
three_sum = numbers[i] + numbers[start] + numbers[end]
18+
diff = abs(three_sum - target)
19+
if diff == 0:
20+
return target
21+
if diff < min_diff:
22+
min_diff = diff
23+
ret = three_sum
24+
if three_sum < target:
25+
start += 1
26+
else:
27+
end -= 1
28+
return ret

0 commit comments

Comments
 (0)