leetcode 36: 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].



class Solution {
public:
    int removeDuplicates(int A[], int n) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        
        if(n<=1) return n;
        
        int i=0;
        int j=1;
        bool flag = false;
        int temp = A[i];
        
        while( j<n) {
            if( A[j] != temp) {
                i++;
                A[i] = temp = A[j];
                flag = false;
            } else if( flag == false) {
                i++;
                A[i] = temp = A[j];
                flag = true;
            }
            j++;
        }
        
        return i+1;
        
    }
};


posted @ 2013-01-15 07:27  西施豆腐渣  阅读(109)  评论(0编辑  收藏  举报