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
.