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

数据流中的中位数

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

// 使用插入排序,在数据流加入数组的同时进行排序
const arr = [];
function Insert(num)
{
    let i = 0;
    // 循环找到第一个比num大的元素,将num添加到该元素位置上,该元素就被挤到下一位上
    while(arr.length && arr[i] < num){
        i++;
    }
    arr.splice(i , 0, num);
}
function GetMedian(){
	// 计算中位数
    let size = arr.length;
    let mid = 0;
    // 偶数个元素,中位数是中间位置的两个数的平均
    if(size % 2 === 0){
        mid = (arr[size / 2] + arr[size / 2 - 1]) / 2;
        return mid;
    }
    else{
        mid = arr[Math.floor(size / 2)];
        return mid;
    }
}
module.exports = {
    Insert : Insert,
    GetMedian : GetMedian
};

全部评论

相关推荐

03-01 21:45
中北大学 golang
孤蓝长空:请你说一下为什么你用websocket而不是http,请你说一下什么是rpc,为什么用rpc,你的rpc的传输协议是JSON,xml还是什么 请你描述一下你的鉴权流程(完整的) 我问的是第二个项目,随便问的哈哈哈
开工第一帖
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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