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;
}
posted @ 2021-07-04 14:56  crp_cpp  阅读(136)  评论(2编辑  收藏  举报