Given a zero-based permutation nums
(0-indexed), build an array ans
of the same length where ans[i] = nums[nums[i]]
for each 0 <= i < nums.length
and return it.
A zero-based permutation nums
is an array of distinct integers from 0
to nums.length - 1
(inclusive).
Example 1:
Input: nums = [0,2,1,5,3,4]
Output: [0,1,2,4,5,3]
Explanation: The array ans is built as
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]
Example 2:
Input: nums = [5,0,1,2,3,4]
Output: [4,5,0,1,2,3]
Explanation: The array ans is built as
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]
Constraints:
1 <= nums.length <= 1000
0 <= nums[i] < nums.length
nums
are distinct.nums
will be 1, hence consider the single-element scenario.ans
of the same length as nums
.i
from 0
to len(nums) - 1
.i
, set ans[i] = nums[nums[i]]
.ans
.def buildArray(nums):
ans = [0] * len(nums) # Initialize the result array with the same length as nums
for i in range(len(nums)):
ans[i] = nums[nums[i]] # Fill in the values based on the permutation rule
return ans
# Example usage
print(buildArray([0, 2, 1, 5, 3, 4])) # Output: [0, 1, 2, 4, 5, 3]
print(buildArray([5, 0, 1, 2, 3, 4])) # Output: [4, 5, 0, 1, 2, 3]
nums
, as it requires a single pass through the array.Got blindsided by a question you didn’t expect?
Spend too much time studying?
Or simply don’t have the time to go over all 3000 questions?