题目:原题链接(困难)
标签:二分查找、设计
解法 | 时间复杂度 | 空间复杂度 | 执行用时 |
---|---|---|---|
Ans 1 (Python) | addNum = O ( l o g N ) O(logN) O(logN) ; findMedian = O ( 1 ) O(1) O(1) | O ( N ) O(N) O(N) | 276ms (41.51%) |
Ans 2 (Python) | |||
Ans 3 (Python) |
解法一(二分查找):
import bisect
class MedianFinder:
def __init__(self):
self.arr = []
def addNum(self, num: int) -> None:
bisect.insort_left(self.arr, num)
def findMedian(self) -> float:
a = len(self.arr) // 2
b = (len(self.arr) - 1) // 2
return (self.arr[a] + self.arr[b]) / 2