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.
Java:
public class Solution {
public int removeDuplicates(int[] nums) {
if(nums.length == 0) return 0;
int total =1;
int s = 1;
int k = 1;
for(int i=1; i<nums.length;i++)
{
if(nums[i] == nums[i-1] && k <2)
{
nums[s] = nums[i];
k++;
s++;
total ++;
}
else if(nums[i] != nums[i-1])
{
nums[s] = nums[i];
k = 1;
s++;
total ++;
}
}
return total;
}
}