Remove Duplicates from Sorted Array II

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;
    }
}
comments powered by Disqus