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].

思路:这道题与Remove Duplicates from Sorted Array思路差不多吧,就是在记录相等元素的时候有些变化,当相等元素超过两个的时候直接跳过,后面的数不作为记录。

class Solution {
public:
    int removeDuplicates(int A[], int n) {
        int nLength=0;
        if(A==NULL || n==0)
            return 0;
        int count=1;
        int cur=A[0];
        for(int i=1;i<n;i++)
        {
            if(A[i]==cur)
            {
                if(++count>2)
                    continue;
            }
            else
            {
                cur=A[i];
                count=1;
            }
            nLength++;
            A[nLength]=cur;
        }
        return nLength+1;
    }
};

 

 

 

 

posted @ 2014-03-28 23:33  Awy  阅读(105)  评论(0编辑  收藏  举报