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:

    1. Input: nums = [0,1,2,3,4], index = [0,1,2,2,1]
    2. Output: [0,4,1,3,2]
    3. Explanation:
    4. nums index target
    5. 0 0 [0]
    6. 1 1 [0,1]
    7. 2 2 [0,1,2]
    8. 3 2 [0,1,3,2]
    9. 4 1 [0,4,1,3,2]

    Example 2:

    1. Input: nums = [1,2,3,4,0], index = [0,1,2,3,0]
    2. Output: [0,1,2,3,4]
    3. Explanation:
    4. nums index target
    5. 1 0 [1]
    6. 2 1 [1,2]
    7. 3 2 [1,2,3]
    8. 4 3 [1,2,3,4]
    9. 0 0 [0,1,2,3,4]

    Example 3:

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

    Constraints:

    • 1 <= nums.length, index.length <= 100
    • nums.length == index.length
    • 0 <= nums[i] <= 100
    • 0 <= index[i] <= i

    题意

    按照顺序,将nums[i]插入到index[i]下标处,返回新生成的数组。

    思路

    照做即可。


    代码实现

    1. class Solution {
    2. public int[] createTargetArray(int[] nums, int[] index) {
    3. int[] ans = new int[nums.length];
    4. List<Integer> list = new ArrayList<>();
    5. for (int i = 0; i < nums.length; i++) {
    6. list.add(index[i], nums[i]);
    7. }
    8. for (int i = 0; i < nums.length; i++) {
    9. ans[i] = list. get(i);
    10. }
    11. return ans;
    12. }
    13. }