题目大意:给定一个数组,要求去除多余的数字,保证去除多余的数字后只有可能两个相同的数字临接。
class Solution {
public:
int removeDuplicates(int A[], int n) {
int pre = -1;
int len = 0;
int num = 0;
int spaceStart = -1;
for(int i = 0; i < n; i++) {
if(pre != -1) {
if(A[i] == A[pre]) {
num++;
} else {
num = 1;
}
} else {
num = 1;
}
if(num > 2) {
if(spaceStart == -1) {
spaceStart = i;
}
continue;
}
len++;
if(spaceStart != -1) {
A[spaceStart] = A[i];
pre = spaceStart;
spaceStart++;
} else {
pre = i;
}
}
return len;
}
};