64:数据流中的中位数

import java.util.ArrayList;
import java.util.Collections;

/**
 * 面试题64:数据流中的中位数
 * 如何获得一个数据流中的中位数?若是从数据流中读出奇数个数值,那么中位数就是全部数值排序以后位于中间的数值。
 * 若是从数据流中读出偶数个数值,那么中位数就是全部数值排序以后中间两个数的平均值。
 */
public class _64_middle_num {
}
class Solution64{
    ArrayList<Integer> arrayList=new ArrayList<Integer>();
    public void Insert(Integer num) {
        arrayList.add(num);
    }

    public Double GetMedian() {
        Collections.sort(arrayList);
        int len=arrayList.size();
        if(len%2==0){
            return 1.0*(arrayList.get(len/2-1)+arrayList.get(len/2))/2;
        }
        return 1.0*arrayList.get(len/2);
    }
}
相关文章
相关标签/搜索