首页 > 代码库 > [LeetCode] Remove Duplicates from Sorted Array II

[LeetCode] 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) {        vector<int> Acopy(A,A+n);         if(n<=2)             return n;        int res = n;        int temp = A[0];        int tempNum = 1;        int j = 1;        for(int i=1;i<n;i++){            if(Acopy[i]==temp && tempNum<2){                A[j++]=Acopy[i];               tempNum++;            }else if(Acopy[i]==temp && tempNum>=2){             tempNum++;             res--;            }else if(Acopy[i]!=temp){              temp = Acopy[i];              tempNum = 1;              A[j++]=Acopy[i];            }                            }//end for        return res;    }};

关键数组A中的前res个元素要变化成需要的结果。