public class Solution { public void arrange(ArrayList<Integer> a) { int n = a.size(); for (int i = 0; i < n; i ++) { int oldVal = a.get(i); int combinedVal = combined(oldVal, a.get(oldVal), n); a.set(i, combinedVal); } for (int i = 0; i < n; i ++) { a.set(i, getNewVal(a.get(i), n)); } }
private int combined(int old, int new, int n) { return old + (new % n) * n; }
private int getNewVal(int combined, int n) { return combined / n; } }