https://leetcode.com/problems/relative-sort-array Easy

Решение

fun relativeSortArray(arr1: IntArray, arr2: IntArray): IntArray {
    val count = IntArray(1001) // подсчёт частоты встречаемости элементов arr1
    for (num in arr1) {
        count[num]++
    }

    val result = IntArray(arr1.size)
    var idx = 0

    // добавляем элементы в порядке, заданном arr2
    for (num in arr2) {
        repeat(count[num]) {
            result[idx++] = num
        }
        count[num] = 0
    }

    // оставшиеся элементы добавляем в порядке возрастания
    for (num in count.indices) {
        repeat(count[num]) {
            result[idx++] = num
        }
    }

    return result
}