难度简单45
给你一个 从 0 开始的排列 nums
(下标也从 0 开始)。请你构建一个 同样长度 的数组 ans
,其中,对于每个 i
(0 <= i < nums.length
),都满足 ans[i] = nums[nums[i]]
。返回构建好的数组 ans
。
从 0 开始的排列 nums
是一个由 0
到 nums.length - 1
(0
和 nums.length - 1
也包含在内)的不同整数组成的数组。
示例 1:
输入:nums = [0,2,1,5,3,4]
输出:[0,1,2,4,5,3]
解释:数组 ans 构建如下:
ans = [nums[nums[0]], nums[nums[1]], nums[nums[2]], nums[nums[3]], nums[nums[4]], nums[nums[5]]]
= [nums[0], nums[2], nums[1], nums[5], nums[3], nums[4]]
= [0,1,2,4,5,3]
示例 2:
输入:nums = [5,0,1,2,3,4]
输出:[4,5,0,1,2,3]
解释:数组 ans 构建如下:
ans = [nums[nums[0]], nums[nums[1]], nums[nums[2]], nums[nums[3]], nums[nums[4]], nums[nums[5]]]
= [nums[5], nums[0], nums[1], nums[2], nums[3], nums[4]]
= [4,5,0,1,2,3]
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/build-array-from-permutation
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
程序代码:
class Solution
{
public int[] buildArray(int[] nums)
{
int[] ans=new int[nums.length];
for(int i=0;i<nums.length;i++)
{
ans[i]=nums[nums[i]];
}
return ans;
}
}
做题心得:
题目理解后就会发现很简单,关键是理解题目中的“ans[i] = nums[nums[i]]”,就是将给出的一维数组nums的值作为nums的下标然后再赋值给型构建的数组ans。举个例子:输入:nums=[0,2,1,5,3,4],计算一下ans[1]: ①ans[1]=nums[nums[1]] ②ans[1]=nums[2] ③ans[1]=1