B2098 题解

本题要求我们将序列去重,所以我们可以用一个数组记录此时输入的那个数之前有没有出现过。

如果没有出现过,那么将其输出,并将数组中以这个数为下标的值计为 \(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;
}
上一篇:分享105个软件测试工具 (免费试用) 赶快收藏起来,日后必定有用~


下一篇:树脂(Epoxy-Resin)用于3D打印件的防水处理