有序数组删除重复数字
#include<iostream>
using namespace std;
class Solution {
public:
int removeDuplicates(int A[], int n) {
if (A == nullptr || n <= 1)
return n;
int duplicateCount = 1;
for (int i = 1; i < n; ++i)
{
if (A[i] != A[i - 1])
A[duplicateCount++] = A[i];
}
return duplicateCount;
}
};
int removeDuplicates(int A[], int n) {
if (A == nullptr || n <= 1)
return n;
int i=0;
bool twiceDup = false;
for (int j = i+1; j < n; ++j)
{
if (A[i] == A[j] && !twiceDup && j<n)
{
++i;
++j;
twiceDup = true;
}
if (A[i] != A[j])
{
A[++i] = A[j];
twiceDup = false;
}
}
return ++i;
}