https://leetcode.com/problems/rank-transform-of-an-array/description/ Easy

Решение

fun arrayRankTransform(arr: IntArray): IntArray {
    // Создаем копию массива и сортируем её, удаляя дубликаты
    val sortedUnique = arr.distinct().sorted()
    
    // Создаем карту, где каждому числу соответствует его ранг
    val rankMap = mutableMapOf<Int, Int>()
    for (i in sortedUnique.indices) {
        rankMap[sortedUnique[i]] = i + 1
    }
    
    // Преобразуем исходный массив, заменяя элементы на их ранги
    val result = IntArray(arr.size)
    for (i in arr.indices) {
        result[i] = rankMap[arr[i]]!!
    }
    
    return result
}