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.
int removeDuplicates(int* nums, int numsSize)
{
if(NULL == nums || numsSize <= 0)
return 0;
int j = 0;
int count = 0;
for(int i = 1;i < numsSize;i++)
{
if(nums[j] == nums[i])
{
count++;
if(count < 2)
nums[++j]= nums[i];
}
else
{
nums[++j] = nums[i];
count = 0;
}
}
return j+1;
}