LeetCode 1389. 按既定顺序创建目标数组

Posted Blocking The Sky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 1389. 按既定顺序创建目标数组相关的知识,希望对你有一定的参考价值。

题目描述

给你两个整数数组 nums 和 index。你需要按照以下规则创建目标数组:

目标数组 target 最初为空。
按从左到右的顺序依次读取 nums[i] 和 index[i],在 target 数组中的下标 index[i] 处插入值 nums[i] 。
重复上一步,直到在 nums 和 index 中都没有要读取的元素。
请你返回目标数组。

题目保证数字插入位置总是存在。

示例 :

输入:nums = [0,1,2,3,4], index = [0,1,2,2,1]
输出:[0,4,1,3,2]
解释:
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]

代码

class Solution {
public:
    vector<int> createTargetArray(vector<int>& nums, vector<int>& index) {
        vector<int> result;
        for(int i=0;i<nums.size();i++){
            if(result.empty())
                result.push_back(nums[i]);
            else{
                if(index[i]<result.size()){
                    result.push_back(0);//增加一个元素
                    for(int k=result.size()-1;k>index[i];k--)//插入位置及往后的的地方都往后移动一个位置
                        result[k]=result[k-1];
                    result[index[i]]=nums[i];
                }
                else 
                    result.push_back(nums[i]);
            }
        }
        return result;
    }
};

以上是关于LeetCode 1389. 按既定顺序创建目标数组的主要内容,如果未能解决你的问题,请参考以下文章

leetcode第 181 场周赛

《LeetCode零基础指南》(第五讲) 指针

LeetCode--两数之和

LeetCode-001-两数之和

LeetCode 1两数之和

Leetcode——两数之和