传统题 400ms 128MiB

不重复数字

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

不重复数字

题目描述

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

输入格式

本题有多组数据。

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

对于每组数据:

第一行一个整数 n。

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

输出格式

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

样例

输入样例

2
11
1 2 18 3 3 19 2 3 6 5 4
6
1 2 3 4 5 6

输出样例

1 2 18 3 19 6 5 4
1 2 3 4 5 6

数据范围与提示

对于 30%30\% 的数据,n100n \le 100,给出的数 [0,100]\in [0, 100]

对于 60%60\% 的数据,n104n \le 10^4,给出的数 [0,104]\in [0, 10^4]

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

#include<bits/stdc++.h>
using namespace std;

int t, n, a[50005];
int main(){
	cin >> t;
	while(t--){
		cin >> n;
		map<int, int> m;
		int cnt = 0;
		for(int i=1; i<=n; i++){
			int x;
			cin >> x;
			if(m.count(x)) continue;
			a[++cnt] = x;
			m[x]++;   //把x计数一次,表示x出现过了!
		}
		for(int i=1; i<=cnt; i++) cout << a[i] << ' ';
		cout << endl;
	}
	return 0;
}

【L2-第37课】-2025.03.29

未认领
状态
已结束
题目
10
开始时间
2025-3-29 0:00
截止时间
2025-4-5 23:59
可延期
24 小时