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.
Solution:
public class Solution {
public int removeDuplicates(int[] nums) {
int i=0, j=0;
while(j<nums.length){
while(j+2<nums.length && nums[j]==nums[j+2]) j++;
if(j<nums.length) nums[i++] = nums[j++];
}
return i;
}
}