https://leetcode.com/problems/decompress-run-length-encoded-list/description/ Easy

Решение

fun decompressRLElist(nums: IntArray): IntArray {
    var totalLength = 0
    var i = 0

    // Сначала вычисляем общую длину результирующего массива
    while (i < nums.size) {
        totalLength += nums[i] // nums[i] — это freq
        i += 2 // Переходим к следующей паре
    }

    // Создаём массив нужной длины
    val result = IntArray(totalLength)
    var index = 0
    i = 0

    // Проходим по каждой паре [freq, val]
    while (i < nums.size) {
        val freq = nums[i]
        val value = nums[i + 1]

        // Заполняем result значением value freq раз
        repeat(freq) {
            result[index++] = value
        }

        i += 2 // Переход к следующей паре
    }

    return result
}