[leetcode] 1389. Create Target Array in the Given Order

    科技2024-01-06  82

    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 <= 100nums.length == index.length0 <= nums[i] <= 1000 <= 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

    参考文献

    [LeetCode] 13.7 MB, less than 87.26% Python

    Processed: 0.028, SQL: 8