给你两个整数数组 nums 和 index。你需要按照以下规则创建目标数组:
目标数组 target 最初为空。
按从左到右的顺序依次读取 nums[i] 和 index[i],在 target 数组中的下标 index[i] 处插入值 nums[i] 。
重复上一步,直到在 nums 和 index 中都没有要读取的元素。
请你返回目标数组。
题目保证数字插入位置总是存在。
示例 1:
输入: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]
思路
1,遍历nums数组,获取要插入值的target下标
2,从后往前遍历,移动前一个元素到后一个元素
代码
public int[] createTargetArray(int[] nums, int[] index) { int[] target = new int[nums.length]; for (int i = 0; i < nums.length; i++) { int numIndex = index[i]; for (int j = nums.length - 1; j > numIndex; j--) { target[j] = target[j - 1]; } target[numIndex] = nums[i]; } return null; }
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/create-target-array-in-the-given-order
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
原文:https://www.cnblogs.com/dongma/p/14219452.html