#DSA0204. 无序向量去重

无序向量去重

时间限制: 1.0 秒

空间限制: 256 MB

题目描述

给定一个长度为 nn无序向量 a0,...,an1a_0,...,a_{n-1},请将该向量进行去重,对于不同的值,以他们在该向量中第一次出现的位置进行先后排序。

交互方式

这是一道函数式交互题,不需要选手考虑输入输出,也不要从标准输入读入数据,或将任何内容输出到标准输出,否则会影响判题。

你提交的代码需要包含头文件 unique.h

你需要实现一个函数 std::vector<long long>(const std::vector<long long>&),传入参数为一个 long long 无序向量。返回值为去重之后的 long long 无序向量。本题向量的具体形式是已知的,但是你无法直接修改传入的无序向量。

以下我们给出一个代码提交实例(会固定返回传入的无序向量,仅作为示例,不保证能得分):

#include "unique.h"
std::vector<long long> unique(const std::vector<long long>& a)
{
    return a;
}

你不需要,也不应该,实现主函数。

我们给出一个样例,供你在本地进行调试。

6
1 1 4 5 1 4
1 4 5

样例 1 解释

去重后的向量规模没有直接在样例中输出,输出数字的个数即为向量规模。由于 11 的第一次出现位置比 44 靠前,因此最终结果 1144 的前面。

子任务

对于所有数据,保证 1n5×105, 1ai10121\le n\le 5\times 10^5,~1\le a_i\le 10^{12}

  • 子任务 1(50 分):n2000n\le 2000
  • 子任务 2(50 分):无特殊限制。

提示

chap 02 向量,无序向量去重,习题解析 [2-12]。

子任务的设置分别对应了该习题的 (a) (b) (c) 三个小问。

本题投稿人:新威考研