Friday, January 9, 2015

LeetCode 80: Remove Duplicates from Sorted Array II

Follow up for "Remove Duplicates":
What if duplicates are allowed at most twice?
For example,
Given sorted array A = [1,1,1,2,2,3],
Your function should return length = 5, and A is now [1,1,2,2,3].
public class Solution {
    public int removeDuplicates(int[] A) {
        int n = A.length;
        
        if (n == 0)
            return 0;
            
        int pos = 0;
        int dup = 0;
        
        for (int i = 1; i < n; i++)
            if (A[i] != A[pos])
            {
                A[++pos] = A[i];
                dup = 0;
            }
            else if (dup < 1)
            {
                A[++pos] = A[i];
                dup++;
            }
            else
                dup++;
        
        return pos+1;        
    }
}

No comments:

Post a Comment