直觉
问题是创建一个新数组,其中每个元素是当前索引原始数组索引的原始数组的值。例如,如果原始数组为[0、2、1、5、3、4],则新数组应为[0、1、2、4、5、3]。
方法
要创建新数组,我们可以首先分配与原始数组相同长度的数组。然后,我们可以使用for循环在原始数组的每个索引上迭代,并在该索引上分配新数组为原始数组索引的原始数组的值。
复杂
-
时间复杂性:
O(n)
-
空间复杂性:
O(n)
代码
class Solution {
public int[] buildArray(int[] nums) {
int[] newNums = new int[nums.length];
for (int i = 0; i < nums.length; i++) {
newNums[i] = nums[nums[i]];
}
return newNums;
}
}