是指从给定的C数组中移除重复出现的元素,只保留一个副本。可以通过以下步骤来实现:
arr
,长度为n
。arr
,对于每个元素arr[i]
,检查其是否已经在结果数组中出现过。可以通过遍历结果数组来进行检查。如果该元素已经存在于结果数组中,则跳过该元素。arr
,覆盖原始的重复数组。如果定义了一个新的数组来存储结果,可以将其返回作为函数的输出。该算法的时间复杂度为O(n^2),其中n为数组的长度。由于每次查找重复项都需要遍历结果数组,因此算法效率相对较低。
以下是一个示例代码来删除C数组中的重复项:
#include <stdio.h>
int removeDuplicates(int arr[], int n) {
int result[n];
int resultIndex = 0;
for (int i = 0; i < n; i++) {
int isDuplicate = 0;
for (int j = 0; j < resultIndex; j++) {
if (arr[i] == result[j]) {
isDuplicate = 1;
break;
}
}
if (!isDuplicate) {
result[resultIndex] = arr[i];
resultIndex++;
}
}
for (int i = 0; i < resultIndex; i++) {
arr[i] = result[i];
}
return resultIndex;
}
int main() {
int arr[] = {1, 2, 3, 4, 3, 2, 1};
int n = sizeof(arr) / sizeof(arr[0]);
int uniqueCount = removeDuplicates(arr, n);
printf("Unique elements:\n");
for (int i = 0; i < uniqueCount; i++) {
printf("%d ", arr[i]);
}
return 0;
}
这段代码会输出:
Unique elements:
1 2 3 4
腾讯云相关产品和产品介绍链接地址:
请注意,以上链接仅供参考,并非对应删除C数组中的重复项问题。
领取专属 10元无门槛券
手把手带您无忧上云