问题标题: 酷町堂:3972 !(去重)排序经验值:1200

0
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
我要回答