-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTriangle.py
70 lines (39 loc) · 1.08 KB
/
Triangle.py
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
69
70
# you can write to stdout for debugging purposes, e.g.
# print "this is a debug message"
def swap(A, i, j):
temp = A[i]
A[i] = A[j]
A[j] = temp
def partition(A, l, r):
pivot = A[r]
wall = l
for i in range(l, r):
if A[i] < pivot:
swap(A, i, wall)
wall += 1
swap(A, wall, r)
return wall
def quicksort(A, l, r):
if l < r:
pivot = partition(A, l, r)
quicksort(A, l, pivot-1)
quicksort(A, pivot+1, r)
def is_triangular(v1, v2, v3):
return v1+v2 > v3 and v1+v3 > v2 and v2+v3 > v1
def solution(A):
# write your code in Python 2.7
N = len(A)
if N < 3:
return 0
quicksort(A, 0, len(A)-1)
p = 0
q = 1
r = 2
while p <= len(A)-3:
if is_triangular(A[p], A[q], A[r]):
return 1
else:
p += 1
q += 1
r += 1
return 0