题解 | #数据流中的中位数#

数据流中的中位数

https://www.nowcoder.com/practice/9be0172896bd43948f8a32fb954e1be1

# -*- coding:utf-8 -*-

class Solution:
    nums = []
    def Insert(self, num):
        # write code here
        # self.nums.append(num)
        self.myHeapPush(num)
        # print(self.nums)
        
    def GetMedian(self):
        # write code here
        print(self.nums)
        length = len(self.nums)
        if length%2:
            return self.nums[length//2]
        else:
            return sum(self.nums[length//2-1:length//2+1])/2
        
    def myHeapPush(self, num_in):
        if self.nums == []:
            self.nums.append(num_in)
            return self.nums
        self.nums = [-1, -1, -1] + self.nums + [1001, 1001, 1001]
        print(self.nums, num_in)
        start = 0
        end = len(self.nums)-1
        mid = (end+start)//2
        # print(self.nums[mid], num_in, self.nums[mid+1])
        while not (self.nums[mid] <= num_in <= self.nums[mid+1]):
            # print(mid)
            if num_in > self.nums[mid] and num_in > self.nums[mid+1]:
                start = mid+0
            elif num_in < self.nums[mid] and num_in < self.nums[mid+1]:
                end = mid+0
            mid = (end+start)//2
        self.nums = self.nums[3:mid+1] + [num_in] + self.nums[mid+1:-3]

全部评论

相关推荐

菜鸡29号:根据已有信息能初步得出以下几点: 1、硕士排了大本和大专 2、要求会多语言要么是招人很挑剔要么就是干的活杂 3、给出校招薪资范围过于巨大,说明里面的薪资制度(包括涨薪)可能有大坑
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务