Мой код для сжатия координат

Revision ru3, by rembocoder, 2020-10-29 03:43:39

Привет. Хочу поделиться простым методом сжатия координат. Справится даже начинающий.

vector<int> a(n);
// считываем вектор
vector<int> b = a;
sort(b.begin(), b.end());
map<int, int> m;
for (int i = 0; i < n; i++) {
    m[b[i]] = i;
}
for (int i = 0; i < n; i++) {
    a[i] = m[a[i]];
}

Теперь все значения массива лежат в [0, n). Самое удобное, что если вам нужно оригинальное значение a[i], можно просто написать b[a[i]].

А как это пишите вы?

Tags сжатие координат

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
ru3 Russian rembocoder 2020-10-29 03:43:39 2 Мелкая правка: ' {\n m[a[i]] = i;\' -> ' {\n m[b[i]] = i;\'
en2 English rembocoder 2020-10-29 03:42:57 2 Tiny change: ' {\n m[a[i]] = i;\' -> ' {\n m[b[i]] = i;\'
en1 English rembocoder 2020-10-29 02:45:59 524 Initial revision for English translation
ru2 Russian rembocoder 2020-10-29 02:44:57 8
ru1 Russian rembocoder 2020-10-29 02:44:38 500 Первая редакция (опубликовано)