61、数据流中的中位数
一、题目
如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。
二、解法
1 import java.util.*; 2 public class Solution { 3 ArrayList<Integer> list = new ArrayList<Integer>(); 4 public void Insert(Integer num) { 5 list.add(num); 6 Collections.sort(list); 7 } 8 9 public Double GetMedian() { 10 int mid = list.size()/2; 11 if((list.size()&1) == 1) 12 return list.get(mid)/1.0; 13 else 14 return (list.get(mid-1) + list.get(mid))/2.0; 15 } 16 17 18 }