20200906--整数去重 奥赛一本通(P87 16)

给定包含有n个整数的序列,要求对这个序列进行去重操作,所谓去重,就是对这个序列中每个重复出现的数,只保留该数第一次出现的位置,删除其余位置。

输入:

包含两行;

第1行包含一个正整数n(1<=n<=20000),表示第2行序列中数字的个数;

第2行包含n个整数,每个整数之间以一个空格分开,每个整数大于等于10,小于等于100

输出:

一行,按照输入的顺序输出其中不重复的数字,每个整数之间用一个空格分开。

样例输入:

5

10 12 93 12 75

样例输出

10 12 93 75

 

#include <bits/stdc++.h>

using namespace std;

int n;//整数个数

int m[20001];//用一维数组存储元素

int  ls[20001];//用于判断输出每个位置上的数字

int main()

{

  cin>>n;

  for(int i=1;i<=n;i++)

    {

      cin>>m[i];

    }
    for(int i=1;i<=n;i++)

      {
       if(ls[m[i]]==0)

        {

          printf("%d ",m[i]);

          ls[m[i]]=1;

        }

    }

  return 0;

}

posted @ 2020-09-06 15:59  财盛  阅读(173)  评论(0编辑  收藏  举报