问题标题: 酷町堂:1066 去重

0
0
已解决
李翊冉
李翊冉
高级守护
高级守护

题目描述 Description

一整型序列,可能存在相同的元素,请去掉重复的元素且只保留一个,输出经过去重的序列。若没有重复的元素,则输出原序列。

输入描述 Input Description

输入为两行:
第一行包含一个整数N,为序列的长度(N≤100);
第二行为N个整数(0~10000)。

输出描述 Output Description

若有重复的元素,输出去重后的序列,否则,输出原序列。

样例输入 Sample Input

 

10
1 2 3 1 2 3 4 5 6 10

样例输出 Sample Output

 

1 2 3 4 5 6 10

http://judge2.codingtang.com/problem/1066/


0
已采纳
张舒斌
张舒斌
中级光能
中级光能

我先告老师你在酷町问答上查作业,然后再回答你的问题:

去重其实很简单,直接用桶排就行了,看我的神操作:

for(int i=1;i<=n;i++)
{
    cin>>a;
    s[a]++;//这里就是用桶装一下
}

这是输入,再看看输出:

for(int i=1;i<=(a的最大范围);i++)
{
    if(s[i]!=0)
    {
        cout<<i<<" ";
    }
}

a的最大范围就是你输入的数的最大范围。以这玩意儿为循环终止条件是因为这样才能做到查看所有的桶是否有数

还有,翊冉小宝宝,你市赛考多少分啊?

0
0
李翊冉
李翊冉
高级守护
高级守护

@张舒斌

你以为我没试过啊!

错了!!!

0
0
邹昊轩
邹昊轩
资深光能
资深光能

桶数组轻松解决:t[a[i]]++;

在去重:if(t[a[i]]==0){

                cout<<a[i]<<" ";

                t[a[i]]=0;

                }

希望采纳

0
陈泉宏
陈泉宏
高级守护
高级守护
for i:=1 to n do if c[a[i]]=0 then begin c[a[i]]:=1;write(a[i],' ');end;

 

我要回答