Well, a medium problem. Use two pointers. One points to the curren number and the other points to the last unique number. Once duplicates occur, move the unique pointer to the right and copy the current number to it.
The code is pretty short.
1 int removeDuplicates(vector<int>& nums) { 2 while (nums.size() <= 1) return nums.size(); 3 int pos = 0; 4 for (int i = 1; i < nums.size(); i++) 5 if (nums[i] != nums[pos]) 6 nums[++pos] = nums[i]; 7 return pos + 1; 8 }