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

数据流中的中位数

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

#include <stdlib.h>
int dataflu[1000];
int dataflu_len = 0;

int compar(const void* q1, const void* q2)
{
    return (*(int*)q1 - *(int*)q2);
}
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param num int整型 
 * @return 无
 */
void Insert(int num ) {
    // write code here
    dataflu[dataflu_len++] = num;
}
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param 无 
 * @return double浮点型
 */
double GetMedian() {
    // write code here
    qsort(dataflu, dataflu_len, sizeof(dataflu[0]), compar);
    double result = 0;

    if(dataflu_len % 2 == 0)
    {
        result = (dataflu[dataflu_len/2 - 1] + dataflu[dataflu_len/2])/2.0;
    }
    else 
    {
        result = dataflu[dataflu_len/2];
    }

    return result;
}

#TOP101#
TOP101-BM系列 文章被收录于专栏

系列的题解

全部评论

相关推荐

rndguy:个人思路,抛砖引玉。 要我的话我先问清楚需求:要什么精度,什么速度,什么环境。 如果精度要求很低,平台也有点柔性的话,只需要输出pwm,然后开个中断记录各多少个脉冲,如果脉冲时间不对齐了就反馈控制电流加减就行。要求同步要求稍微高点的话可以在脉冲间做个线性插值,同步精度会高些。 但总体来说,如果直流有刷只有脉冲没有好的编码器的话很难做精准定位什么的(除非用一些电机磁路结构相关的奇技淫巧如高频注入什么的),所以要求更高就需要大量参数辨识和校准,那就慢多了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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