本题要求我们将序列去重,所以我们可以用一个数组记录此时输入的那个数之前有没有出现过。
如果没有出现过,那么将其输出,并将数组中以这个数为下标的值计为 \(1\)(假设刚开始所有值为 \(0\)),表示这个数已经出现过,否则就不进行操作。
由于 \(10 \leq a_i \leq 100\),所以并不用开 map
数组,直接开一个大小为 \(105\) 的布尔数组即可。
AC 代码(含注释):
#include <iostream>
using namespace std;
int a, n;
bool vis[105]; //记录输入的数是否在之前出现过
int main() {
cin >> n;
for(int i = 1; i <= n; i ++) {
cin >> a;
if(!vis[a]) cout << a << ' ', vis[a] = 1; //如果没出现过,就将其输出,并标记这个数已经出现过。
}
return 0;
}