欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

洛谷P4305不重复数字

程序员文章站 2024-03-16 22:26:22
...

题目描述
给定 n 个数,要求把其中重复的去掉,只保留第一次出现的数。

输入格式
本题有多组数据。

第一行一个整数 T,表示数据组数。

对于每组数据:

第一行一个整数 n。

第二行 n 个数,表示给定的数。

输出格式
对于每组数据,输出一行,为去重后剩下的数,两个数之间用一个空格隔开。

输入输出样例
输入 #1复制
2
11
1 2 18 3 3 19 2 3 6 5 4
6
1 2 3 4 5 6
输出 #1复制
1 2 18 3 19 6 5 4
1 2 3 4 5 6
说明/提示
对于 30% 的数据,n≤100,给出的数 ∈[0,100]。

对于 60% 的数据,给出的数∈[0,10 ^4 ]。

对于 100% 的数据,1≤T≤50,1≤n≤5×10 ^4
,给出的数在 32 位有符号整数范围内。

下面是STL算法【set】
set有一个count的功能,可以计算字符出现的次数


#include <cstdio>
#include <set>
using namespace std;
set<int> s;
int main() {
    int t, n, r, i; 
	scanf("%d", &t);
    while(t--) {
        scanf("%d", &n);
        s.clear();
        scanf("%d", &r);
		printf("%d", r);
		s.insert(r);
        for(i=2; i<=n; ++i) {
            scanf("%d", &r);
            if(s.count(r)==0) 
			{
				printf(" %d", r);
				s.insert(r);	
			}
        }
        puts("");
    }
    return 0;
}