删除重复数据(单数组版)
时间: 2023-10-04 13:09:52 浏览: 54
以下是一个简单的方法来删除单个数组中的重复数据:
1. 创建一个空数组来保存没有重复数据的值。
2. 循环遍历原始数组中的每个值。
3. 如果该值不在空数组中,则将其添加到空数组中。
4. 返回空数组。
示例代码:
```
function removeDuplicates(arr) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) === -1) {
newArr.push(arr[i]);
}
}
return newArr;
}
```
使用示例:
```
var arr = [1, 2, 3, 2, 4, 3];
var newArr = removeDuplicates(arr);
console.log(newArr); // [1, 2, 3, 4]
```
该方法的时间复杂度为 O(n^2),因为在每次循环时都需要使用 indexOf 方法来查找数组中是否已经存在该值。如果原始数组很大,这可能会导致性能问题。可以使用其他更高效的方法来处理大型数组。
相关问题
用C++ 完成 删除重复数据(单数组版) 并输出剩余元素个数原顺序输出所有数字的首次出现。
#include <stdio.h>
int main()
{
int arr[10] = {1, 2, 3, 2, 4, 5, 1, 6, 7, 7};
int len = 10;
int i, j, k;
for (i = 0; i < len; i++) {
for (j = i + 1; j < len; j++) {
if (arr[i] == arr[j]) {
for (k = j; k < len - 1; k++) {
arr[k] = arr[k + 1];
}
len--;
j--;
}
}
}
printf("剩余元素个数:%d\n", len);
printf("原顺序输出所有数字的首次出现:\n");
for (i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}