# LeetCode 1920. Build Array from Permutation

## Description

https://leetcode.com/problems/build-array-from-permutation/

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.

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 follows:
ans = [nums[nums], nums[nums], nums[nums], nums[nums], nums[nums], nums[nums]]
= [nums, nums, nums, nums, nums, nums]
= [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 follows:
ans = [nums[nums], nums[nums], nums[nums], nums[nums], nums[nums], nums[nums]]
= [nums, nums, nums, nums, nums, nums]
= [4,5,0,1,2,3]```

Constraints:

• `1 <= nums.length <= 1000`
• `0 <= nums[i] < nums.length`
• The elements in `nums` are distinct.

Follow-up: Can you solve it without using an extra space (i.e., `O(1)` memory)?

Constraints:

• `-105 <= num <= 105`
• There will be at least one element in the data structure before calling `findMedian`.
• At most `5 * 104` calls will be made to `addNum` and `findMedian`.

• If all integer numbers from the stream are in the range `[0, 100]`, how would you optimize your solution?
• If `99%` of all integer numbers from the stream are in the range `[0, 100]`, how would you optimize your solution?

## Explanation

Implement as the problem describes.

## Python Solution

``````class Solution:
def buildArray(self, nums: List[int]) -> List[int]:
results = []

for i in range(len(nums)):
results.append(nums[nums[i]])

return results``````
• Time Complexity: O(N).
• Space Complexity: O(N).