Discretization
- 排序
- 去重
- 二分查找获取下标
cpp
vector<int> discretization(vector<int> &a) {
vector<int> alls(a);
sort(alls.begin(), alls.end()); // 排序
alls.erase(unique(alls.begin(), alls.end()), alls.end()); //去重
for (int &x : a) { //重新赋值原数组
x = lower_bound(alls.begin(), alls.end(), x) - alls.begin();
}
return alls; //用于查表
}