题目:原题链接(困难)

标签:二分查找、设计

解法 时间复杂度 空间复杂度 执行用时
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