JZ41数据流在的中位数

题目地址:数据流中的中位数_牛客题霸_牛客网
题目回顾:

JZ41数据流在的中位数_第1张图片

解题思路:

首先对于中位数,我们都知道,排序后如果是数组长度是奇数,中位数就是中间的值,也就是n/2的值。如果数组长度是偶数,那么中位数就是中间两个值相加除2,也就是 a= n/2;b=n/2-1;中位数=(a+b)/2。

这样看来我们需要一个排序后的数组,由题意可知这个数组不断在变长,如果增加一个元素排序一次未免不合理,那么我们这里直接使用插入排序。

整体代码:
    private ArrayList val = new ArrayList<>();
    public void Insert(Integer num) {
        if (val.isEmpty())
            val.add(num);
        else {
            int i = 0;
            for (;i

你可能感兴趣的:(力扣刷题,java,算法,数据结构)