2.删除数组中所有重复元素 输入样例: 5 1 3 1 2 3 输出样例: 1 3 2
时间: 2024-09-21 17:12:20 浏览: 59
删除数组中的重复元素通常涉及到遍历数组并使用某种数据结构(如集合或哈希表)来跟踪已经遇到过的值。这里有一个简单的Python示例,使用列表推导式来实现这个功能:
```python
def remove_duplicates(arr):
return list(set(arr))
# 示例
arr = [1, 3, 1, 2, 3]
result = remove_duplicates(arr)
print("Output:", result)
```
在这个例子中,`set()`函数用于去除重复项,因为集合内的元素都是唯一的。然后我们将结果转换回列表以便保持原始数组的形式。
如果你想要在原地操作数组,可以使用以下方法(适用于数值类型的数组),它利用了数组下标:
```python
def remove_duplicates_in_place(arr):
i = 0
for j in range(1, len(arr)):
if arr[j] not in arr[:i]:
arr[i] = arr[j]
i += 1
arr.pop(i) # 移除多余的元素
return arr
# 示例
arr = [1, 3, 1, 2, 3]
result = remove_duplicates_in_place(arr)
print("Output:", result)
```
相关问题
c语言输出删掉不同数据元素之后的表中元素,以空格隔开,占一行,输入样例:10 10 10 10 9 7 5 4 4 3 2输出样例:10 9 7 5 4 3 2
在C语言中,你可以通过数组操作和循环遍历来实现这个功能。这里是一个简单的示例程序,它会删除重复的数据元素并按指定顺序输出:
```c
#include <stdio.h>
#include <stdlib.h>
// 函数用于删除重复元素并排序
void remove_duplicates(int arr[], int n) {
if (n <= 1) return;
// 冒泡排序,便于查找重复项
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
// 输出去重后的元素
for (int i = 0; i < n; i++) {
if (i != 0) printf(" ");
printf("%d", arr[i]);
}
printf("\n");
}
int main() {
int input[] = {10, 10, 10, 10, 9, 7, 5, 4, 4, 3, 2};
int n = sizeof(input) / sizeof(input[0]);
remove_duplicates(input, n);
return 0;
}
```
当你运行这个程序并提供输入数组如`main`函数所示,你会得到预期的输出:
```
10 9 7 5 4 3 2
```
请使用C++编写函数 fun ,函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 注意:请勿改动主函数 main 和其它函数中的任何内容,仅在函数 fun 中填入你编写的若干语句。 输入格式 一维数组。 输出格式 去重之后的数组。 输入输出样例 输入1 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10 10 输出1 2 3 4 5 6 7 8 9 10
以下是 `fun` 函数的 C++ 实现代码:
```cpp
int fun(int a[], int n) {
if (n == 0) return 0;
int j = 0;
for (int i = 1; i < n; i++) {
if (a[j] != a[i]) {
a[++j] = a[i];
}
}
return j + 1;
}
```
主函数 `main` 如下:
```cpp
#include <iostream>
using namespace std;
const int N = 10010;
int fun(int a[], int n);
int main() {
int n, a[N];
cin >> n;
for (int i = 0; i < n; i++) cin >> a[i];
n = fun(a, n);
for (int i = 0; i < n; i++) cout << a[i] << ' ';
cout << endl;
return 0;
}
```
函数 `fun` 的输入参数包括一个一维数组 `a` 和数组长度 `n`,返回删除重复元素后的数组长度。
主函数 `main` 中先读入数组,调用 `fun` 函数得到新的数组长度,最后输出删除重复元素后的数组。
阅读全文