跟踪“删除重复”: 如果最多允许重复两次。

来源:互联网 发布:淘宝微淘在哪里看 编辑:程序博客网 时间:2024/06/06 09:44

本题源自LeetCode

-------------------------------------------------------

思路一:即再用一个下标,表示新数组的长度。


   int removeDuplicates(int A[], int n) {    int index=0;        for(int i=0;i<n;i++){            if(i>0&&i<n-1&&A[i]==A[i-1]&&A[i]==A[i+1]){                continue;            }            A[index++]=A[i];        }        return index;    }

思路二:

巧解,可以用各种重复次数,3,次 ,4 次

    int removeDuplicates(int A[], int n) {        if(n<=2)            return n;    int index=2;        for(int i=2;i<n;i++){            if(A[i]!=A[index-2]){                A[index++]=A[i];            }        }        return index;    }


阅读全文
0 0
原创粉丝点击