题目描述
给定一个大小为 的数组 ,请将 中元素去重后从小到大排序输出。
输入格式
第一行一个整数 表示测试样例个数。
对于每一个测试样例:
- 第一行一个整数 表示数组大小。
- 第二行 个整数表示数组元素。
输出格式
对于每个样例,在一行输出结果后换行。
样例输入1
2
5
1 1 3 2 2
3
1 2 3
样例输出1
1 2 3
1 2 3
思路
set容器的特性是所有元素都会自动排序,并且不包含重复的元素。
首先,通过cin >> t;从输入中读取测试用例的数量。然后进入一个循环,每次循环开始时,都会清空set容器s1,然后通过cin >> n;读取每个测试用例中的元素数量。
接着,进入另一个循环,每次循环都会读取一个元素a,并将其插入到set容器s1中。由于set容器的特性,所有插入的元素都会自动排序,且不包含重复元素。
最后,通过一个范围for循环遍历set容器s1,并将容器中的每个元素输出,实现了排序和去重的功能。在每个测试用例处理完之后,都会输出一个换行符,表示这个测试用例的结果已经输出完毕。
AC代码
#include <algorithm>
#include <iostream>
#include <set>
#define AUTHOR "HEX9CF"
using namespace std;
int t, n;
set<int> s1;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> t;
while (t--) {
s1.clear();
cin >> n;
while (n--) {
int a;
cin >> a;
s1.insert(a);
}
for (auto &i : s1) {
cout << i << " ";
}
cout << endl;
}
return 0;
}