[JLOI2011]不重复数字

# [JLOI2011]不重复数字

## 题目描述

给定 $n$ 个数,要求把其中重复的去掉,只保留第一次出现的数。

## 输入格式

**本题有多组数据。**

第一行一个整数 $T$,表示数据组数。

对于每组数据:

第一行一个整数 $n$。

第二行 $n$ 个数,表示给定的数。

## 输出格式

对于每组数据,输出一行,为去重后剩下的数,两个数之间用一个空格隔开。

## 样例 #1

### 样例输入 #1

```

2

11

1 2 18 3 3 19 2 3 6 5 4

6

1 2 3 4 5 6

```

### 样例输出 #1

```

1 2 18 3 19 6 5 4

1 2 3 4 5 6

```

## 提示

对于 $30\%$ 的数据,$n \le 100$,给出的数 $\in [0, 100]$。

对于 $60\%$ 的数据,$n \le 10^4$,给出的数 $\in [0, 10^4]$。

对于 $100\%$ 的数据,$1 \le T\le 50$,$1 \le n \le 5 \times 10^4$,给出的数在 $32$ 位有符号整数范围内。

#include <bits/stdc++.h>

#include <bits/extc++.h>

using namespace std;

using namespace __gnu_pbds;

map<int, int> f;

int main()

{

int T;

cin >> T;

while (T--)

{

int n, x;

cin >> n;

int iter = 0;

vector<pair<int, int>> ve;

for (int i = 1; i <= n; i++)

{

cin >> x;

if (!f[x])

f[x] = ++iter, ve.push_back({iter, x});

}

sort(ve.begin(), ve.end());

for (auto l : ve)

cout << l.second << " ";

f.clear();

cout << endl;

}

system("pause");

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值