日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

牛客网 在线编程 数据流中的中位数

發布時間:2023/12/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 牛客网 在线编程 数据流中的中位数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述

如何得到一個數據流中的中位數?如果從數據流中讀出奇數個數值,那么中位數就是所有數值排序之后位于中間的數值。如果從數據流中讀出偶數個數值,那么中位數就是所有數值排序之后中間兩個數的平均值。我們使用Insert()方法讀取數據流,使用GetMedian()方法獲取當前讀取數據的中位數。

?

import java.util.*;public class Solution {public ArrayList<Integer> list = new ArrayList<>();public Solution() {// TODO Auto-generated constructor stub}public void Insert(Integer num) {int size = list.size();list.add(num);int index = bs(num);for (int i = size-1; i >= index; i--)swap(i+1, i);}public Double GetMedian() {int size = list.size() - 1;if (size % 2 == 1)return Double.valueOf((list.get(size / 2) + list.get(size / 2 + 1)) / 2.0);elsereturn Double.valueOf(list.get(size / 2));}public int bs(int val) {int l = 0;int r = list.size() - 1;int mid = 0;while (l <= r) {mid = (l + r) >> 1;if (list.get(mid) <= val) {l = mid + 1;} else {r = mid - 1;}}return l;}public void swap(int i, int j) {int tmp = list.get(i);list.set(i, list.get(j));list.set(j, tmp);}}

用插入排序重新排序。這種做法比較垃圾。重新寫了一個用優先級隊列的方法。一個大根堆和一個小根堆

import java.util.*;public class Solution {public PriorityQueue<Integer> maxHeap;public PriorityQueue<Integer> minHeap;public Solution() {maxHeap = new PriorityQueue<Integer>(new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o2 - o1;}});minHeap = new PriorityQueue<>(new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o1 - o2;}});}public void Insert(Integer num) {if (this.maxHeap.isEmpty() || num <= this.maxHeap.peek()) {this.maxHeap.add(num);} else {this.minHeap.add(num);}while (Math.abs(this.maxHeap.size() - this.minHeap.size()) > 1) {if (this.maxHeap.size() > this.minHeap.size()) {this.minHeap.add(this.maxHeap.poll());} else {this.maxHeap.add(this.minHeap.poll());}}}public Double GetMedian() {int maxsize = this.maxHeap.size();int minsize = this.minHeap.size();if ((minsize + maxsize) % 2 == 0) {return Double.valueOf((this.maxHeap.peek() + this.minHeap.peek()) / 2.0);} else {if (maxsize > minsize) {return Double.valueOf(this.maxHeap.peek());} else {return Double.valueOf(this.minHeap.peek());}}}}

?

總結

以上是生活随笔為你收集整理的牛客网 在线编程 数据流中的中位数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久在线视频 | 91福利免费视频 | 国产亚洲女人久久久久毛片 | 日韩在线观看精品 | 国产精品一区二区三区免费看 | 欧美一级大片免费看 | 国产精品无码免费在线观看 | 99国产在线 | 丝袜 中出 制服 人妻 美腿 | 国产刺激对白 | 西西44rtwww国产精品 | 一级在线免费观看 | 瑟瑟视频在线 | 青青在线视频 | 97香蕉久久超级碰碰高清版 | 妺妺窝人体色www在线小说 | 日韩欧美小视频 | 亚洲成年人 | 激情五月av | 国产日批视频在线观看 | 欧美成人午夜免费视在线看片 | 久久狠| 亚洲成人精品一区二区 | 黄视频免费看在线 | 97视频在线免费观看 | 亚洲天堂网站 | 美女视频免费在线观看 | 另类小说五月天 | 亚洲色图婷婷 | 久久黑丝 | 亚洲色在线视频 | 成人免费精品 | 97超碰人| 日韩极品少妇 | 爱乃なみ加勒比在线播放 | 亚洲综合无码一区二区 | 超碰人人澡 | 欧美特一级 | 日韩福利社 | 国产调教打屁股xxxx网站 | 亚洲人xxx| www.男女 | 性――交――性――乱 | 午夜伦理av | 做爰视频毛片视频 | 亚洲伦理天堂 | 日韩av影音先锋 | 性涩av | 亚洲精品粉嫩小泬20p | 成人网免费视频 | 成年人免费观看视频网站 | 男人天堂tv | 日本中文字幕免费观看 | 综合色在线视频 | 一级黄色免费视频 | 国产精品久久久网站 | 91麻豆精品国产91久久久久久 | 一个色综合网站 | 精品日本一区二区三区 | 亚洲免费看片 | 亚洲在线视频网站 | xxxxwww国产| 波多野结衣一区二 | 欧美看片 | 欧美aaaaaaa| 6080亚洲精品一区二区 | 中文字幕美女 | 强制憋尿play黄文尿奴 | 在线不卡一区二区 | 一级黄色aa | 成人av高清在线 | 最新av电影网站 | 欧美 日韩 国产在线 | 欧美日韩视频网站 | 在线不卡av电影 | 狠狠插狠狠干 | 理伦毛片 | 老熟女高潮一区二区三区 | 国产精品一区在线观看 | 欧美老熟妇喷水 | 黄色成人在线 | 午夜天堂网 | 亚洲日本va中文字幕 | 综合久久激情 | 中文字幕第一页在线 | 最新中文字幕第一页 | 日本老小玩hd老少配 | 欧美精品一区二区蜜臀亚洲 | juliaann办公室丝袜大战 | 神马电影久久 | www.狠狠爱 | 理论片午午伦夜理片影院99 | 麻豆做爰免费观看 | 在线观看视频国产 | 人妻熟人中文字幕一区二区 | 黄色片美女 | 日韩亚洲影院 | 国产孕妇孕交大片孕 | 久久91视频 |