leetcode[80]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) {

        if(n<=2)return n;

        int len=1;

        int curr=A[0];

        map<int,int> Amap;

        Amap[curr]=1;

        for(int i=1;i<n;i++)

        {

            if(A[i]==curr)

            {

                Amap[curr]++;

                if(Amap[curr]<=2)

                {

                    A[len]=curr;

                    len++;

                }

            }

            else

            {

                curr=A[i];

                Amap[curr]=1;

                A[len]=curr;

                len++;

            }

        }

        return len;

    }

};

 

你可能感兴趣的:(LeetCode)