数组离散化处理,本质哈希
vector get(const vector& arr)
{
vector tmp = arr;
sort(tmp.begin(), tmp.end());
tmp.erase(unique(tmp.begin(), tmp.end()), tmp.end());
unordered_map mp;for (int i = 0; i < tmp.size(); i + )
{
mp[tmp[i]] = i;
}
vector res(arr.size());
for (int i = 0; i < arr.size(); i + )
{
res[i] = mp[arr[i]];
}
return res;
}
适合用于数据很少,但是数值很大,且不涉及数值计算的题目
{
vector
sort(tmp.begin(), tmp.end());
tmp.erase(unique(tmp.begin(), tmp.end()), tmp.end());
unordered_map
{
mp[tmp[i]] = i;
}
vector
for (int i = 0; i < arr.size(); i + )
{
res[i] = mp[arr[i]];
}
return res;
}
适合用于数据很少,但是数值很大,且不涉及数值计算的题目
全部评论
相关推荐