给定一个有序数组,删除其中部分元素,使得剩下的每个数最多出现2次。要求删除的数的数量尽可能少。
例如:
给出有序数组 A =[1,1,1,2,2,3],
你给出的函数应该返回length =5, A 变为[1,1,2,2,3].
解析:
class Solution {
public:
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;
}
};