Rearrange a given array so that Arr[i] becomes Arr[Arr[i]] with O(1) extra space.
Example:
Input : [1, 0]
Return : [0, 1]
Let's say N = size of the array. Then, the following holds true :
All elements in the array are in the range [0, N-1]
N * N does not overflow for a signed integer