class Solution {
    public void sortColors(int[] nums) {
        int r = 0, w = 0, b = nums.length - 1;
        while (w <= b) {
            if (nums[w] == 0) {
                // Move 0's to beginning                
                nums[w] = nums[r];
                nums[r] = 0;
                r++;
                w++;
            } else if (nums[w] == 2) {
                // Move 2's to end
                nums[w] = nums[b];
                nums[b] = 2;
                b--;
            } else {
                w++;
            }
        }
    }
}