Rearrange Array
Rearrange a given array so that Arr[i] becomes Arr[Arr[i]] with O(1) extra space.
Example:
Input : [1, 0]
Return : [0, 1]Lets say
N=size of the array. Then, following holds true :
All elements in the array are in the range
[0, N-1]
N * Ndoes not overflow for a signed integer
public class Solution {
public void arrange(ArrayList<Integer> arr) {
int n = arr.size();
for (int i = 0; i < n; i++)
arr.set(i, arr.get(i) + (arr.get(arr.get(i)) % n) * n);
for (int i = 0; i < n; i++)
arr.set(i, arr.get(i) / n);
}
}Last updated