1.5 KiB
Executable File
1.5 KiB
Executable File
layout | title | date | categories | tags | author | math | libraries | ||||
---|---|---|---|---|---|---|---|---|---|---|---|
post | Leetcode - Build Array From Permutation (1920) | 2023-02-11 08:02:32 +0800 |
|
|
devoalda | true |
|
Description
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
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]
{: file="Input/Output"}
Thought Process
Simple Brute force method that requires O(n)
time and space complexity.\
Using the explanation, Ive created a new array (ans
) and assigned the elements of ans
with the corrosponding
values from nums[nums[i]]
, where i is the index of the for loop.
Code
class Solution {
public 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;
}
}
{: file="Solution.java" }
Afterthoughts
This could be improved to O(1)
time and space complexity but I need more experience with data structures
and algorithms. This is also my first Java leetcode attempt.