[leetcode] Remove Duplicates from Sorted Array II


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].

很奇怪的题,和此题的第一代没有本质区别。

只要增加一个变量count记录当前已经出现的相同数字的个数。

如果count>2,不移动start,如果小于等于2,copy A[i] to A[start++]。

class Solution {
public:
    int removeDuplicates(int A[], int n) {
        int count = 1;
        int start = 1;
        int i = 1;
        if(n == 0){
            return 0;
        }
        while(i < n){
            if(A[i] == A[i - 1]){
                count++;
            }
            else{
                count = 1;
            }
            if(count <= 2){
                A[start++] = A[i];
            }
            i++;
        }
        return start;
    }
};

Untitled

Leave a comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.