1. """
  2. 中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。
  3.  
  4. 例如,
  5.  
  6. [2,3,4] 的中位数是 3
  7.  
  8. [2,3] 的中位数是 (2 + 3) / 2 = 2.5
  9.  
  10. 设计一个支持以下两种操作的数据结构:
  11.  
  12. void addNum(int num) - 从数据流中添加一个整数到数据结构中。
  13. double findMedian() - 返回目前所有元素的中位数。
  14.  
  15. 来源:力扣(LeetCode)
  16. 链接:https://leetcode-cn.com/problems/find-median-from-data-stream
  17. 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
  18. """
  19. """
  20. author :jiyanjiao
  21. date : 2019-10-21
  22. """
  23.  
  24. class MedianFinder:
  25. nuber_list = []
  26. sum = 0
  27.  
  28. def __init__(self):
  29. """
  30. initialize your data structure here.
  31. """
  32.  
  33. def addNum(self, num: int) -> None:
  34. self.nuber_list.append(num)
  35.  
  36. def findMedian(self) -> float:
  37. nb = self.nuber_list
  38. oder_list = []
  39. le = len(nb)
  40. if le <=1:
  41. raise Exception("中位数至少需要两位数")
  42. for i in range(0, le):
  43. for j in range(i+1, le):
  44. if nb[j] < nb[i]:
  45. tmp = nb[i]
  46. nb[i] = nb[j]
  47. nb[j] = tmp
  48. oder_list.append(nb[i])
  49. print(nb[i])
  50. i += 1
  51. oder_le = len(oder_list)
  52. if oder_le % 2 == 0:
  53. m1 = (oder_list[int(oder_le/2)]+oder_list[int(oder_le/2)-1])/2
  54. else:
  55. m1 = oder_list[int(oder_le/2)]
  56. print(m1)
  57. return m1
  58.  
  59. # Your MedianFinder object will be instantiated and called as such:
  60. if __name__ == '__main__':
  61.  
  62. obj = MedianFinder()
  63. obj.addNum(1)
  64. obj.addNum(2)
  65. obj.addNum(4)
  66. obj.addNum(3)
  67. obj.addNum(5)
  68. param_2 = obj.findMedian()

The One day 中位数的计算的更多相关文章

  1. C#计算数组的算术平均数、几何平均数、调和平均数、平方平均数和中位数

    1.函数实现 0)打印数组 /// <summary> /// 打印数组 /// </summary> /// <param name="arr"&g ...

  2. 【贪心+中位数】【UVa 11300】 分金币

    (解方程建模+中位数求最短累积位移) 分金币(Spreading the Wealth, UVa 11300) 圆桌旁坐着n个人,每人有一定数量的金币,金币总数能被n整除.每个人可以给他左右相邻的人一 ...

  3. 中位数+暴力——cf433C

    /* 中位数到所有数的距离之和最小 因为只能改一个数,所以我们找一个数,将其改为和其相邻的数的中位数,使答案最小 先求一次原答案 把每个数相邻的数用vector存下来,然后排序找中位数,计算减小的量 ...

  4. \(\S1\) 描述性统计

    在认识客观世界的过程中,统计学的思想和方法经常起着不可替代的作用.在许多工程及自然科学的专业领域中,包括可靠性分析.质量控制.生物信息.脑科学.心理分析.经济分析.金融风险管理.社会科学推断.行为科学 ...

  5. UESTC_秋实大哥与妹纸 2015 UESTC Training for Data Structures<Problem F>

    F - 秋实大哥与妹纸 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 1500/1500KB (Java/Others) Submit ...

  6. 一个"Median Maintenance"问题

    题目要求: Download the text file here. The goal of this problem is to implement the "Median Mainten ...

  7. R语言︱异常值检验、离群点分析、异常值处理

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:异常值处理一般分为以下几个步骤:异常 ...

  8. matlab 常用函数

    Matlab常用函数 Matlab的内部常数  eps   浮点相对精度  pi  圆周率  exp  自然对数的底数e  i 或j  虚数单位  Inf或 inf  无穷大 Matlab概率密度函数 ...

  9. LFYZ-OJ ID: 1017 士兵站队问题

    分析 该题和"输油管道问题"类似,只不过由一维问题编程了二维问题.可以将总步数分解为移动到水平线y位置的总步数ysteps和移动到序列x, x+1, x+2, ... , x+n- ...

随机推荐

  1. 【CSP膜你赛】大逃亡

    题目描述 魔王撒旦为了建立魔物的乐土,率领亚多拉玛雷克.艾谢尔.路西菲尔.以 及马纳果达这四位恶魔大元帅进攻人类世界.然而此时手持圣剑的勇者艾米莉亚出现了.  战败的魔王逃跑时穿越到了地球,以真奥贞夫 ...

  2. nagios监控的安装

    本文中,物理机IP 192.168.1.105虚拟linux主机ip 192.168.1.10安装apache和phpApache 和Php 不是安装nagios 所必须的,但是nagios提供了we ...

  3. Incorrect string value: '获取...' for column 'result' at row 1

    错误详情信息: ### Error updating database. Cause: java.sql.SQLException: Incorrect ### The error may invol ...

  4. SpringCloud之application.properties和bootstrap.properties区别

    Spring是有上下文一说的,也叫Application Context,Application Context又是有父子关系的,所以必须要理解ApplicationContext是什么.Spring ...

  5. JPA的一对多,多对多用法

    一.@OneToOne关系映射 JPA使用@OneToOne来标注一对一的关系. 实体 People :用户. 实体 Address:家庭住址. People 和 Address 是一对一的关系. 这 ...

  6. 使用hdfs-mount挂载HDFS

    目录 1.特性(计划)简介 2.构建程序 3.使用hdfs-mount挂载HDFS hdfs-mount是一个将HDFS挂载为本地Linux文件系统的工具,使用go语言开发,不依赖libdfs和jav ...

  7. mysql 大小写不敏感

    lower-case-table-names=1 变量lower-case-table-names的取值 取值范围有三个,分别是0.1.2. 1. 设置成0:表名按你写的SQL大小写存储,大写就大写小 ...

  8. laravel5.8ajax请求auth认证返回302的解决方法。

    注册 /app/Http/Controller/Auth/RegisterController.php <?php namespace App\Http\Controllers\Auth; us ...

  9. EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器版本打包方法介绍

    EasyDSS流媒体解决方案是一套集流媒体点播.转码.管理.直播.录像.检索.时移回看于一体的一套完整的商用流媒体解决方案.EasyDSS软件以压缩包的形式提供给客户使用,同时支持Linux和 Win ...

  10. C# Task 暂停与取消 或 C#中可取消的Task

    (1)https://www.cnblogs.com/zhengzc/p/10724839.html (2)https://blog.csdn.net/hxfhq1314/article/detail ...