HUST程序设计竞赛(新生赛)-同步赛-R-小乐乐与序列

小乐乐与序列

https://ac.nowcoder.com/acm/contest/1877/R

题目描述
老师给了小乐乐一个正整数序列,要求小乐乐把这个序列去重后按从小到大排序。但是老师给出的序列太长了,小乐乐没办法耐心的去重并排序,请你帮助他。
输入描述:
第一行包含一个正整数n,表示老师给出的序列有n个数。接下来有n行,每行一个正整数k,为序列中每一个元素的值。(1 ≤ n ≤ 105,1 ≤ k ≤ n)
输出描述:
输出一行,为去重排序后的序列,每个数后面有一个空格。
很明显是个桶排序,

桶排序是最简单的排序之一


同样的

耗得空间也是很大的

用一个布尔数组来记录

一开始全部为false

然后依次读入ai,,ai+1, ai+2... ...

然后将a[i],a[i+1],a[i+2]... ...标记为true

最后遍历一次

将所有的true输出

就达到了除重排序的作用

下面是C++の代码

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>

using namespace std;

int read()
{
    int x=0;
    bool f = false;
    char ch;
    do ch=getchar(),f|=(ch=='-');
    while(ch<48||ch>57);
    while(ch>47&&ch<58)
        x=(x<<1)+(x<<3)+(ch^48),ch=getchar();
    return f?-x:x;
}//快读

int main()
{
    int i, n = read();
    bool a[n+1];
    memset(a, false, sizeof(a));
    int temp;
    for (i = 1;i <= n;i++)
    {
        temp = read();
        a[temp] = true;
    }
    for (i = 1;i <= n;i++)
    {
        if (a[i] == true)
            cout << i << " ";
    }
    return 0;
}
全部评论

相关推荐

07-03 11:02
中山大学 C++
字节刚oc,但距离九月秋招很近了有两段互联网实习,非腾讯字节。不敢赌转正,现在在纠结去还是不去如果实习俩月离职会有什么后果吗
阿城我会做到的:不去后悔一辈子,能否转正取决于ld的态度,只要他不卡,答辩就是走流程,个人觉得可以冲一把
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
哈哈哈哈哈哈哈哈哈哈这个世界太美好了
凉风落木楚山秋:毕业出路老师不管,你盖个章他好交差就完事了,等你盖完毕业了就不关他事情了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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