整数去重

GitHub跳转原题关系图返回列表

题意与原解析均从本地 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;
}

复杂度

总结