This page looks best with JavaScript enabled

Leetcode - Build Array From Permutation (1920)

 ·  ☕ 1 min read  ·  ✍️ devoalda

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

1
2
3
4
5
6
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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
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.

Share on

Devoalda
WRITTEN BY
devoalda
Technophile