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

数据流中的中位数

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

用双端队列构建一个有序的数组,再返回该有序数组中中间元素的平均值。

# -*- coding:utf-8 -*-
from collections import deque
class Solution:
    def __init__(self):
        self.order_list = deque()
    
    def Insert(self, num):
        # write code here
        if not self.order_list:
            self.order_list.append(num)
        elif num >= self.order_list[-1]:
            self.order_list.append(num)
        elif num <= self.order_list[0]:
            self.order_list.appendleft(num)
        else:
            for i in range(len(self.order_list) - 1):
                if self.order_list[i] <= num and self.order_list[i + 1] >= num:
                    self.order_list.insert(i + 1, num)
                    break
            
        
    def GetMedian(self):
        # write code here
        len_list = len(self.order_list)
        mid_right = self.order_list[int(len_list / 2)]
        mid_left = self.order_list[int((len_list - 1) / 2)]
        return round((mid_right + mid_left) / 2, 2)
全部评论

相关推荐

野猪不是猪🐗:是我导致的,我前天对力扣进行了跨站脚本攻击,网站把我的请求给block了(胡言乱语)
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
2024-12-30 18:02
程序员牛肉:1.可以标记一下自己的学校是985,有一些hr可能没想到你这个院校是985的。 2.简历所呈现出来的能力还是有点差的,苍穹外卖+黑马点评。这在java技术域里面也就是刚学三四个月的样子,大厂现在招人少,小厂又更加希望你能直接过来干活。就你简历上呈现出来的能力,确实是有点难找,肉眼可见的不懂技术。 第一个项目中:简单的使用redis也算是亮点嘛?使用jwt,threadlocal也算是亮点?你不就是调了几个包嘛?Nginx作为服务器也能写出来,这不是前端的活嘛? 第二个项目中:分布式锁+mq消息队列+Lua队列。真没啥好问的。属于面试官看一眼就阳痿的简历,没有任何想提问的欲望。 我给你建议是好好的挖一挖这个项目吧,其实苍穹外卖和黑马点评这两个项目很不错了,只不过是太烂大街了导致面试官没啥问的兴趣,所以不太推荐写简历上。
点赞 评论 收藏
分享
学不完不睡觉11:一眼点评,不过,看运气吧
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务