-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path3sums_4.py
More file actions
49 lines (47 loc) · 992 Bytes
/
3sums_4.py
File metadata and controls
49 lines (47 loc) · 992 Bytes
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
nums = [0]
import time
tic = time.perf_counter()
result=[]
resultset=set()
nums.sort()
length = len(nums)
if length ==0:
print ([])
if nums[0]>0 or nums[-1]<0:
print ([])
if nums[-1]==0:
if nums.count(0)>=3:
print ([[0,0,0]])
else:
print ([])
if nums.count(0)>=3:
resultset.add((0,0,0))
postiveindex=next(x[0] for x in enumerate(nums) if x[1] > 0)
for i1 in range(postiveindex):
i2=i1+1
i3=length-1
num1=nums[i1]
target=-1*num1
num2=nums[i2]
num3=nums[i3]
while i2<i3:
pair=num2+num3
if pair>target:
i3-=1
num3=nums[i3]
elif pair<target:
i2+=1
num2=nums[i2]
else:
resultset.add((num1,num2,num3))
i2+=1
i3-=1
num2=nums[i2]
num3=nums[i3]
resultset = list(resultset)
for t in resultset:
result.append(list(t))
print (result)
toc = time.perf_counter()
#print (mid-tic)
print (toc-tic)