不重复地输出数

来源:互联网 发布:ubuntu图形界面修复 编辑:程序博客网 时间:2024/05/04 16:21
总时间限制:
1000ms
内存限制:
65536kB
描述

输入n个数,从小到大将它们输出,重复的数只输出一次。保证不同的数不超过500个。

输入
第一行是一个整数n。1 <= n <= 100000。
之后n行,每行一个整数。整数大小在int范围内。
输出
一行,从小到大不重复地输出这些数,相邻两个数之间用单个空格隔开。
样例输入

52 4 4 5 1

样例输出

1 2 4 5

大体的思路是遍历去重再排序,附上ac代码。
#include<stdio.h>
int main()
{
    int n,a[200001],i,j,f[200001]={0},b[200001]={0},t=0,k=0;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=0;i<n;i++)
    {
         f[a[i]]++;
         if(f[a[i]]==1)
         b[k++]=a[i];
    }
    for(i=0;i<k-1;i++)
    {
        for(j=0;j<k-1-i;j++)
        {
            if(b[j]>b[j+1])
            {
                t=b[j];b[j]=b[j+1];b[j+1]=t;
            }
        }
    }
    for(i=0;i<k;i++)
        printf("%d ",b[i]);
    return 0;
}
0 0
原创粉丝点击