题目描述
如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。
import java.util.ArrayList;
import java.util.Collections;
public class Solution {
ArrayList<Integer> a = new ArrayList<Integer>();
public void Insert(Integer num) {
a.add(num);
}
public Double GetMedian() {
if(a.size() == 0)
return 0.0;
Collections.sort(a);
if(a.size() % 2 == 0) {
int i = a.size() / 2;
return (a.get(i) + a.get(i - 1)) / 2.0;
}else {
return a.get(a.size() / 2) * 1.0;
}
}
}