https://leetcode.com/problems/create-target-array-in-the-given-order/ Easy

Условие

Даны два массива одинаковой длины nums и index.

Создай массив target, вставляя элементы из nums[i] по позициям index[i].

Верни итоговый массив target.

Примеры

Input: nums = [0,1,2,3,4], index = [0,1,2,2,1] Output: [0,4,1,3,2] Explanation: Вставки по шагам: [0] → [0,1] → [0,1,2] → [0,1,3,2] → [0,4,1,3,2]

Input: nums = [1,2,3,4,0], index = [0,1,2,3,0] Output: [0,1,2,3,4] Explanation: Последний элемент (0) вставляется в начало, сдвигая всё вправо

Input: nums = [1], index = [0] Output: [1]

Решение

fun createTargetArray(nums: IntArray, index: IntArray): IntArray {
    val target = mutableListOf<Int>()

    for (i in nums.indices) {
        // Вставляем nums[i] в позицию index[i]
        target.add(index[i], nums[i])
    }

    // Преобразуем список в массив
    return target.toIntArray()
}

Временная сложность

O(n^2) в худшем случае из-за вставок в середину списка.

Пространственная сложность

O(n), используется дополнительный список длины n.