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