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;
    }

 

posted on 2013-09-29 09:49  waruzhi  阅读(140)  评论(0编辑  收藏  举报

导航