Description
Given two arrays of integers nums and index. Your task is to create target array under the following rules:
- Initially target array is empty.
- From left to right read nums[i] and index[i], insert at index index[i] the value nums[i] in target array.
- Repeat the previous step until there are no elements to read in nums and index.
Return the target array.
It is guaranteed that the insertion operations will be valid.
Example 1:
Input: nums = [0,1,2,3,4], index = [0,1,2,2,1]
Output: [0,4,1,3,2]
Explanation:
nums index target
0 0 [0]
1 1 [0,1]
2 2 [0,1,2]
3 2 [0,1,3,2]
4 1 [0,4,1,3,2]
Example 2:
Input: nums = [1,2,3,4,0], index = [0,1,2,3,0]
Output: [0,1,2,3,4]
Explanation:
nums index target
1 0 [1]
2 1 [1,2]
3 2 [1,2,3]
4 3 [1,2,3,4]
0 0 [0,1,2,3,4]
Example 3:
Input: nums = [1], index = [0]
Output: [1]
Constraints:
- 1 <= nums.length, index.length <= 100
- nums.length == index.length
- 0 <= nums[i] <= 100
- 0 <= index[i] <= i
分析
题目的意思是:按照给定的索引位置插入数,这在python上实现其实很简单,list已经具备插入功能了,我的实现用的是list。当然还有其他手动做法,每插入一个数的时候,判断该位置是否为空,如果为空则直接插入,如果不为空,则把当前到末尾的数向右移动一个位置,然后再插入进去。
代码
class Solution:
def createTargetArray(self, nums: List[int], index: List[int]) -> List[int]:
res=[]
for num,id in zip(nums,index):
res.insert(id,num)
return res