1920. Build Array from Permutation LeetCode Solution
In this guide, you will get 1920. Build Array from Permutation LeetCode Solution with the best time and space complexity. The solution to Build Array from Permutation problem is provided in various programming languages like C++, Java, and Python. This will be helpful for you if you are preparing for placements, hackathons, interviews, or practice purposes. The solutions provided here are very easy to follow and include detailed explanations.
Table of Contents
- Problem Statement
- Complexity Analysis
- Build Array from Permutation solution in C++
- Build Array from Permutation solution in Java
- Build Array from Permutation solution in Python
- Additional Resources
Problem Statement of 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.
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 follows:
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 follows:
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
The elements in nums are distinct.
Follow-up: Can you solve it without using an extra space (i.e., O(1) memory)?
Complexity Analysis
- Time Complexity: O(n)
- Space Complexity: O(1)
1920. Build Array from Permutation LeetCode Solution in C++
class Solution {
public:
vector<int> buildArray(vector<int>& nums) {
const int n = nums.size();
for (int i = 0; i < n; ++i)
nums[i] += n * (nums[nums[i]] % n);
for (int i = 0; i < n; ++i)
nums[i] /= n;
return nums;
}
};
/* code provided by PROGIEZ */
1920. Build Array from Permutation LeetCode Solution in Java
class Solution {
public int[] buildArray(int[] nums) {
final int n = nums.length;
for (int i = 0; i < n; ++i)
nums[i] += n * (nums[nums[i]] % n);
for (int i = 0; i < n; ++i)
nums[i] /= n;
return nums;
}
}
// code provided by PROGIEZ
1920. Build Array from Permutation LeetCode Solution in Python
class Solution:
def buildArray(self, nums: list[int]) -> list[int]:
n = len(nums)
for i, num in enumerate(nums):
nums[i] += n * (nums[num] % n)
for i in range(n):
nums[i] //= n
return nums
# code by PROGIEZ
Additional Resources
- Explore all LeetCode problem solutions at Progiez here
- Explore all problems on LeetCode website here
Happy Coding! Keep following PROGIEZ for more updates and solutions.