Simple Solution In One Iteration | O(n) Space | O(1) Time | Java


#1
public void sortColors(ArrayList<Integer> a) {
        int n = a.size();
        int iZero = 0;
        int iTwo = n-1;
        for(int i = 0; i < n; i++){
            if(a.get(i) == 0){
                int temp = a.get(iZero);
                a.set(iZero,0);
                a.set(i,temp);
                iZero++;
            }
            else if(a.get(i) == 2 && i < iTwo){
                int temp = a.get(iTwo);
                a.set(iTwo,2);
                a.set(i,temp);
                iTwo--;
                i--;
            }
        }
    }

/*
0 1 2 0 1 2
0 1 2 0 1 2
0 1 1 0 2 2
0 0 1 1 2 2
*/