1920年。从置换式Java解决方案中的LeetCode的构建数组在运行时击败96%**非常简单且逻辑的解决方案**
#编程 #java #leetcode #learning

直觉

问题是创建一个新数组,其中每个元素是当前索引原始数组索引的原始数组的值。例如,如果原始数组为[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;
    }
}