1 parent 18d1a34 commit 02b88feCopy full SHA for 02b88fe
1 file changed
3sum_closest.py
@@ -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