Remove Duplicates from Sorted Array II

和I相比,最多可有两个重复的数字,所以在I的基础上,增加一个bool变量isFirst,如果只出现一次的话,就可以继续往后移一位,否则等待出现下一个不同的值时才将新的值写入。

注意边界条件(老忘真不好,心中默念一百遍!)。

    int removeDuplicates(int A[], int n) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        if(n <= 0)
            return 0;
        int result = 0;
        bool isFirst = true;
        int i;
        for(i = 1; i < n; i++){
            if(A[i] != A[result]){
                A[++result] = A[i];
                isFirst = true;
            }
            else{
                if(isFirst){
                    isFirst = false;
                    A[++result] = A[i];
                }
            }
        }
        return result+1;
    }
原文地址:https://www.cnblogs.com/waruzhi/p/3345230.html