Follow up for "Remove Duplicates":
What if duplicates are allowed at most twice?
For example,
Given sorted array nums = [1,1,1,2,2,3],
Your function should return length = 5, with the first five elements of nums being 1, 1, 2, 2 and 3. It doesn't matter what you leave beyond the new length.
1 class Solution {
2 public:
3 int removeDuplicates(vector<int>& nums) {
4
5 int len = nums.size();
6 if(len == 0){
7 return 0;
8 }
9 int start = 0;
10 int num = 0;
11 for(int i = 1; i < len; i ++){
12 if(nums[start] == nums[i]){
13 num ++;
14 if(num < 2){
15 nums[++start] = nums[i];
16 }
17 }else{
18 num = 0;
19 nums[++start] = nums[i];
20 }
21 }
22 return start + 1;
23 }
24 };