Ctrl K

Сжатые ранги

Лёгкая
Дан массив целых чисел values. Замените каждое число его рангом и верните получившийся массив. Ранг устроен так: - ранги — целые числа, начиная с 1; - чем больше число, тем больше его ранг; у равных чисел ранги равны; - ранги как можно меньше, то есть идут подряд без пропусков.
Пример 1
values=[7, -2, 7, 0] → [3, 1, 3, 2]

Различные значения по возрастанию: -2, 0, 7 — их ранги 1, 2, 3. Обе семёрки получают ранг 3.

Пример 2
values=[50, 40, 30] → [3, 2, 1]

Самое маленькое — 30, ранг 1; самое большое — 50, ранг 3.

Пример 3
values=[] → []
Ограничения
  • 0 ≤ len(values) ≤ 10⁵
  • -10⁹ ≤ values[i] ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПобедитель с большинством голосов ЛёгкаяЕсть ли повтор ЛёгкаяПотерянный билет ЛёгкаяЗначения в обоих списках ЛёгкаяОбщие значения с повторами Лёгкая
загружаем Python…
Вход
values=[7, -2, 7, 0]
Ожидается
[3, 1, 3, 2]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 115 тестов на сервере, включая скрытые.