Here, we will see how to solve Build Array from Permutation Solution of leet code 1920 problem with code and algorithm.
You are given a zero-based permutation nums (0-indexed) array. You have to 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]
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]
Build Array from Permutation Solution code in C++
Code 1:
#include <iostream>
#include <vector>
using namespace std;
vector<int> buildArray(vector<int>& nums) {
vector<int> v(nums.size());
for(int i = 0; i < nums.size(); i++) {
v[i] = nums[nums[i]];
}
return v;
}
int main()
{
vector<int> nums = {0,2,1,5,3,4};
vector<int> ans = buildArray(nums);
for(auto it : ans) {
cout<<it<<" ";
}
return 0;
}Code 2:
#include <iostream>
#include <vector>
using namespace std;
vector<int> buildArray(vector<int>& nums) {
int i;
vector<int>ans;
for (i=0;i<nums.size();i++)
{
ans.push_back(nums[nums[i]]);
}
return ans;
}
int main()
{
vector<int> nums = {0,2,1,5,3,4};
vector<int> ans = buildArray(nums);
for(auto it : ans) {
cout<<it<<" ";
}
return 0;
}Output:
0 1 2 4 5 3
To check more leetcode problem’s solution. Pls click given below link:
https://techieindoor.com/category/leetcode/