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);
    }
}
相關文章
相關標籤/搜索