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]
Approach
Java
import java.util.Arrays;public class BuildArrayPermut {public static void main(String[] args) {int[] nums = { 0, 2, 1, 5, 3, 4 };int[] ans = buildArray(nums);System.out.println(Arrays.toString(ans));}static 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;}}
C++
#include <bits/stdc++.h>using namespace std;vector<int> buildArray(vector<int> &nums){vector<int> ans(nums.size());for (int i = 0; i < nums.size(); i++){ans[i] = nums[nums[i]];}return ans;}int main(){vector<int> nums = {0, 2, 1, 5, 3, 4};vector<int> ans = buildArray(nums);cout << "[";for (int i = 0; i < ans.size(); i++){cout << ans[i];if (i != ans.size() - 1)cout << ", ";}cout << "]";return 0;}
No comments:
Post a Comment