DD:整数去重

总时间限制: 
1000ms
 
内存限制: 
65536kB
描述

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

输入
输入包含两行:
第一行包含一个正整数n(1 <= n <= 20000),表示第二行序列中数字的个数;
第二行包含n个整数,整数之间以一个空格分开。每个整数大于等于10、小于等于100。
输出
输出只有一行,按照输入的顺序输出其中不重复的数字,整数之间用一个空格分开。
样例输入
5
10 12 93 12 75
样例输出
10 12 93 75
 1 #include <iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int n, a[20001], b[200000] = { 0 };
 6     cin >> n;
 7     for (int i = 0; i < n; ++i)
 8     {
 9         cin >> a[i];
10     }
11     for (int i = 0; i < n; ++i)
12     {
13         if (b[a[i]] == 0)
14         {
15             b[a[i]] = 1;//标记
16             cout << a[i] << " ";
17         }
18     }
19 
20 
21     return 0;
22 }
 1 #include<cstdio>
 2 #include<cstdlib>
 3 int main()
 4 {
 5     int a[20001];
 6     int n;
 7     scanf("%d", &n);
 8     for (int i = 1; i <= n; i++)
 9     {
10         scanf("%d", &a[i]);
11         for (int j = 1; j < i; j++)
12         {
13             if (a[j] == a[i])
14             {
15                 i = i - 1;
16                 n = n - 1;
17             }
18         }
19     }
20     for (int i = 1; i <= n; i++)
21     {
22         printf("%d ", a[i]);
23     }
24 }

 

 1 #include <iostream>
 2 #include <algorithm>
 3 using namespace std;
 4 int main()
 5 {
 6     int n, a[20001];
 7     cin >> n;
 8     for (int i=0;i<n;++i)
 9     {
10         cin >> a[i];
11     }
12     sort(a, a + n);
13     int b = unique(a, a + n) - a;//去重
14     for (int i = 0; i < b; ++i)
15     {
16         cout<< a[i]<<" ";
17     }
18     return 0;
19 }

 

posted @ 2020-12-01 23:53  丁帅帅dss  阅读(114)  评论(0)    收藏  举报