-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path3Sum Closest.py
More file actions
68 lines (59 loc) · 1.46 KB
/
3Sum Closest.py
File metadata and controls
68 lines (59 loc) · 1.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
nums = [-55,-24,-18,-11,-7,-3,4,5,6,9,11,23,33]
target = 0
import time
tic = time.perf_counter()
nums.sort()
length = len(nums)
num1=nums[0]
num2=nums[1]
num3=nums[-1]
sum=num1+num2+num3
dfrnce=sum-target
if dfrnce<0:
dfrnce=-1*dfrnce
elif dfrnce==0:
print (sum)
prevdfrnce=dfrnce
# i2=2
# num2=nums[i2]
for i1 in range(len(nums)):
if i1 >= length-2:
break
num1=nums[i1]
# if i1>0:
i2=i1+1
num2=nums[i2]
i3=length-1
num3=nums[i3]
while i2<i3:
currdfrnce=num1+num2+num3-target
if currdfrnce<0:
currdfrnce=-1*currdfrnce
if currdfrnce>prevdfrnce:
i2 = i2+1
i3 -=1
num2=nums[i2]
num3=nums[i3]
prevdfrnce=currdfrnce
else :
if currdfrnce<dfrnce:
dfrnce=currdfrnce
sum=num1+num2+num3
if dfrnce==0:
print (sum)
prevdfrnce=currdfrnce
i2+=1
num2=nums[i2]
elif currdfrnce>0:
if currdfrnce<prevdfrnce:
if currdfrnce<dfrnce:
dfrnce=currdfrnce
sum=num1+num2+num3
if dfrnce==0:
print (sum)
prevdfrnce=currdfrnce
i3-=1
num3=nums[i3]
else:
print (num1+num2+num3)
print (sum)