题解 | #中位数#

中位数

https://www.nowcoder.com/practice/2364ff2463984f09904170cf6f67f69a

#include <iostream>
#include <algorithm>
using namespace std;
int Data[10000];
int main() {
    int num;
    while (cin >> num) {
        if(num==0)
        {
            return 0;
        }
        for (int i = 0; i < num; i++) {
            cin >> Data[i];
        }
        if (num % 2 == 0) {
            // 如果数组长度是偶数,需要找到中间两个数
            std::nth_element(Data, Data + num / 2, Data + num);
            int mid1 = Data[num / 2];
            std::nth_element(Data, Data + num / 2 - 1, Data + num);
            int mid2 = Data[num / 2 - 1];
            cout << (mid1 + mid2) / 2 << endl;
        } else {
            // 如果数组长度是奇数,只需要找到中间那个数
            std::nth_element(Data, Data + num / 2, Data + num);
            cout << Data[num / 2] << endl;
        }

    }
}
// 64 位输出请用 printf("%lld")

使用c++的std::nth_element,连续两个不会影响各自的绝对位置

全部评论

相关推荐

昨天 09:08
裁应届生,一分钱补偿没有,离职了还脑控你,跟踪你,定位你,丁东服务是搞系每一个人
牛客吹哨人:建议细说...哨哥晚点统一更新到黑名单:不要重蹈覆辙!25届毁意向毁约裁员黑名单https://www.nowcoder.com/discuss/1317104
叮咚买菜稳定性 9人发布 投递叮咚买菜等公司10个岗位 >
点赞 评论 收藏
分享
一个菜鸡罢了:哥们,感觉你的简历还是有点问题的,我提几点建议,看看能不能提供一点帮助 1. ”新余学院“别加粗,课程不清楚是否有必要写,感觉版面不如拿来写一下做过的事情,教育经历是你的弱势就尽量少写 2. “干部及社团经历”和“自我评价”删掉 3. 论文后面的“录用”和“小修”啥的都删掉,默认全录用,问了再说,反正小修毕业前肯定能发出来 4. 工作经验和研究成果没有体现你的个人贡献,着重包装一下个人贡献
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务