特么,今天笔试写了一半,最后有一句没写上,特么就挂了啊,哎,有点后悔,还是个外企。。。。。
都怪自己思维不严密,没有想好就草草交卷了。
input:已排序数组
output:无重复序列
要求:efficient
这个可以是O(N)的做法,遍历一遍就可以剔除,如果不另外分配空间的话,可以在原来数组上做:
void deldup(int* arr,int& n){
if(NULL == arr){
return;
}
int i = 0;
int j = 0;
int k = 0;
for(j = i+1; j < n; ++j){
if(arr[i] == arr[j]){
continue;
}
arr[k++] = arr[i];
i = j;
}
arr[k] = arr[i];
n = k;
}