给定一个包含 n 个整数的数组,请你删除数组中的重复元素并将数组从小到大排序后输出。
输入格式
第一行包含一个整数 n。
第二行包含 n 个不超过 1000 的正整数。
输出格式
输出去重和排序完毕后的数组。
数据范围
1≤n≤1000
输入样例:
6
8 8 7 3 7 7
输出样例:
3 7 8
set:
#include <iostream>
#include <cstring>
#include <algorithm>
#include <set>
using namespace std;
int main()
{
int n;
cin >> n;
set<int> S;
while (n--)
{
int x;
cin >> x;
S.insert(x);
}
for (auto x : S)
cout << x << ' ';
return 0;
}
用unique函数:
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 1010;
int q[N];
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
cin >> q[i];
sort(q, q + n);
n = unique(q, q + n) - q;
for (int i = 0; i < n; i++)
cout << q[i] << ' ';
return 0;
}
代码:
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 1010;
int q[N];
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
cin >> q[i];
sort(q, q + n);
int j = 1;
for (int i = 1; i < n; i++)
if (q[i] != q[i - 1])
q[j++] = q[i];
for (int i = 0; i < j; i++)
cout << q[i] << ' ';
return 0;
}