public int removeDuplicates(int[] nums) {
        if (nums.length == 1)
            return 1;
        int index = 0;
        for (int i = 0; i < nums.length; ++i) {
            if (i + 1 < nums.length && nums[i] == nums[i + 1]) {
                nums[index++] = nums[i++];
                nums[index++] = nums[i];
            } else {
                nums[index++] = nums[i];
            }
            while (i + 1 < nums.length && nums[i] == nums[i + 1]) {
                ++i;
            }
        }
        return index;
    }