题意与原解析均从本地 OpenJudge 缓存迁移。
OJ: noi_openjudge
题目 ID: ch0109-13
难度:未知
标签:数组去重集合python
日期: 2026-07-30 23:01
题意
完整题面见同目录的 problem.md。
思路
用集合记录已出现数,仅在首次出现时加入输出序列。
代码
Python代码
python
count = int(input())
numbers = map(int, input().split())
seen = set()
answer = []
for number in numbers:
if number not in seen:
seen.add(number)
answer.append(number)
print(*answer)C++代码
cpp
#include <cstdio>
#include <cstring>
int n;
int cnt[200] = {0};
int a[20009];
int main(){
int i,t;
scanf("%d",&n);
for (i=1;i<=n;i++){
scanf("%d",&t);
a[i] = t;
cnt[t] = 1;
}
for (i=1;i<=n;i++){
if( cnt[a[i]]){
printf("%d ",a[i]);
cnt[a[i]]--;
}
}
return 0;
}