离散化
题目描述
现有数列A1,A2,…,An,数列中可能有重复元素。
现在要求输出该数列的离散化数列,重复元素离散化后的数字相同。
输入描述
第一行,一个整数n(1<= n <= 10^5)。
第二行,n个整数A1,A2,…,An,(-10^9 <= Ai <= 10^9)。
输出描述
一行,包括n个整数。表示数列对应的离散化数列,重复元素离散化后的数字相同。
样例
输入
6
1 23424 242 65466 242 0
输出
1 3 2 4 2 0
思路
观察题目,这个题我们要先排好序。然后直接查找就行
当然是不能直接查找的,因为题目要求中提到
重复元素离散化后的数字相同
所以我们在查找前要先去重,然后才能进行查找
最后进行循环输入并查找即可
生僻代码(maybe)
int cnt = unique(b, b + n) - b;
这个是数组相邻去重,注意需要<algerithm>
int l = lower_bound