0
已解决
杜明泽
资深守护
资深守护
3972 !(去重)排序经验值:1200 时间限制:1000毫秒
题目描述 Description
现在有n(n不超过10^5)个正整数(范围是1~10000),请你去除其中没有出现重复的整数,按照升序输出。
输入描述 Input Description
第一行输入一个整数n(n<=10^5)
第二行输入n个整数,空格隔开
输出描述 Output Description
输出一行,空格隔开
样例输入 Sample Input
8
1 2 5 2 3 1 4 5
样例输出 Sample Output
1 1 2 2 5 5
0
已采纳
汪子晨
修练者
修练者
这是道打卡题,说难不难,说简单也不简单,我们开始吧:
1.定义:
int a[100100],b[100100];
2.输入n
[int n,输入n]
3.循环0到n输入b[i]
4.循环:
for(int i=0;i<100050;i++)
{
a[i+1]=0;
}
5.再循环到n,每次a[b[i]]++;
6.最后:
for(int i=1;i<=100050;i++)
{
if(a[i]!=0&&a[i]!=1)
{
for(int j=0;j<a[i];j++)
{
cout<<i<<" ";
}
}
}
100分AC!
汪子晨在2021-06-04 12:48:49追加了内容
采纳呗!
0
杜明泽
资深守护
资深守护
#include<iostream>
using namespace std;
int main(){
int a[100100],b[100100],n;
cin>>n;
for(int i=0;i<=n;i++){
cin>>b[i];
}
for(int i=0;i<=100050;i++){
a[i+1]=0;
}
for(int i=0;i<=n;i++){
a[b[i]]++;
}
for(int i=1;i<=100050;i++){
if(a[i]!=0&&a[i]!=1){
for(int j=0;j<a[i];j++)
cout<<i<<" ";
}
}
return 0;
}
这样吗?样例没过?
0