题解 | #数据流中的中位数#

数据流中的中位数

http://www.nowcoder.com/practice/9be0172896bd43948f8a32fb954e1be1

import java.util.ArrayList;
import java.util.Collections;
public class Solution {

    ArrayList<Integer> list = new ArrayList<>();//创建一个数组列表(list)
    public void Insert(Integer num) {
        list.add(num);//往数组列表(list)中添加元素
    }

    public Double GetMedian() {
        Collections.sort(list);//集合工具类(Collections)对数组列表排序
        int length = list.size();
        //求中位数
        if(length % 2 != 0){//从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值
            return (double)list.get(length/2);
        }else{//从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值
            return (double)(list.get(length/2-1) + list.get(length/2))/2;
        }
    }


}
全部评论

相关推荐

迷茫的大四🐶:看来已经准备换人了
点赞 评论 收藏
分享
评论
7
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务