leetcode

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 m = 2;
		for (int i = 2; i < n; i++)
		{
			if(A[m-2] != A[m-1] || A[m-2] != A[i])
			{
				A[m++] = A[i];
			}
		}
#if 0
		std::cout << m << std::endl;
		for (int i = 0; i < m; i++)
		{
			std::cout << A[i] << " ";
		}
		std::cout << std::endl;
#endif // 1

		return m;
    }
};


原文地址:https://www.cnblogs.com/wgwyanfs/p/6781054.html