用C++语言自定义一个函数来实现删除一个整形数组中重复出现的元素,要求时间复杂度为O(n)
时间: 2024-05-15 18:19:38 浏览: 99
删除数组中的重复元素
以下是一个使用C语言实现删除整型数组中重复元素的函数,时间复杂度为O(n):
```c
void removeDuplicates(int arr[], int n) {
int i, j, k;
for (i = 0; i < n; i++) {
for (j = i + 1; j < n;) {
if (arr[j] == arr[i]) {
for (k = j; k < n; k++) {
arr[k] = arr[k + 1];
}
n--;
} else {
j++;
}
}
}
}
```
该函数的输入参数包括一个整型数组和该数组的长度。函数内部使用两个循环来遍历整个数组,第一个循环控制当前元素,第二个循环用于查找是否存在相同的元素。如果找到相同的元素,该元素之后的所有元素都要向前移动一个位置,同时数组的长度要减1。这样做可以保证时间复杂度为O(n)。
阅读全文