Skip to content

Commit 8f78502

Browse files
authored
Create statistics-from-a-large-sample.py
1 parent 019ee18 commit 8f78502

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Time: O(n)
2+
# Space: O(1)
3+
4+
import bisect
5+
6+
7+
class Solution(object):
8+
def sampleStats(self, count):
9+
"""
10+
:type count: List[int]
11+
:rtype: List[float]
12+
"""
13+
n = sum(count)
14+
mi = next(i for i in xrange(len(count)) if count[i]) * 1.0
15+
ma = next(i for i in reversed(xrange(len(count))) if count[i]) * 1.0
16+
mean = sum(i * v for i, v in enumerate(count)) * 1.0 / n
17+
mode = count.index(max(count)) * 1.0
18+
for i in xrange(1, len(count)):
19+
count[i] += count[i-1]
20+
median1 = bisect.bisect_left(count, (n+1) // 2)
21+
median2 = bisect.bisect_left(count, (n+2) // 2)
22+
median = (median1+median2) / 2.0
23+
return [mi, ma, mean, median, mode]

0 commit comments

Comments
 (0)