Well, an extension of Remove Duplicates from Sorted Array.
The program is fairly similar to that in this solution.
1 int removeDuplicates(vector<int>& nums) { 2 if (nums.size() <= 2) return nums.size(); 3 int pos = 1; 4 for (int i = 2; i < nums.size(); i++) 5 if (nums[i] != nums[pos] || nums[i] != nums[pos - 1]) 6 nums[++pos] = nums[i]; 7 return pos + 1; 8 }
After playing with it for a while, you may notice that the code can be easily extended to accommodate 3, 4, ... duplicates by modifying lines 3, 4, 5 in a similar manner.