删除重复元素 分数 10 作者 张银南 单位 浙江科技学院 输入一系列数据,降序输出这些数据,重复元素只输出一次。用集合实现。 输入格式: 输入多个数据,用逗号隔开。 输出格式: 降序排列,不重复输出数据,用空格隔开(每个数据后带空格)
时间: 2024-03-06 15:46:19 浏览: 58
以下是使用 Python 语言实现的代码:
```python
data = input().split(',') # 输入多个数据,用逗号隔开并转换为列表
# 将列表转换为集合并转换为列表,去除重复元素
data = list(set(data))
# 将列表中的元素转换为整型并排序
data = sorted(list(map(int, data)), reverse=True)
# 输出降序排列后的数据,用空格隔开
print(' '.join([str(x) + ' ' for x in data]))
```
这段代码的运行结果为:根据输入的多个数据,去除重复元素并降序输出。
相关问题
7-4 查找最接近的元素 分数 20 作者 zhu weihua 单位 新余学院 在一个非降序列中,
给定一个整数x,请设计一个高效算法,查找序列中最接近x的数。 如果有多个最接近x的数,则返回序号最小的数的下标(从0开始)。 如果序列中没有元素,则返回-1。
函数头部: int find(int* a, int n, int x);
输入参数:
a:非降序列,数组a中存放n个整数(0<=n<=10^6,-10^9<=a[i]<=10^9)。
n:非降序列中元素的个数。
x:需要查找的整数(-10^9<=x<=10^9)。
输出参数:
函数返回值:序列中最接近x的数的下标。
输入样例:
a: 1 2 3 4 5 6
n: 6
x: 3
输出样例:
2
算法1
(二分查找) $O(logn)$
由于是非降序列,可以使用二分查找法。
首先特判序列为空的情况,如果序列为空,则返回-1。
如果序列不为空,则在序列中进行二分查找,找到最接近x的数。具体的方法是设两个指针left和right,分别指向序列的第一个元素和最后一个元素。然后不断将区间缩小,直到left和right相邻为止。最后判断left和right哪一个更接近x即可。
6-4 链表去重 分数 10 作者 黄龙军 单位 绍兴文理学院 要求实现函数,将带头结点的单链表中的在后面出现的重复元素删去。
<<引用:题目描述>> 要实现一个函数,将带头结点的单链表中在后面出现的重复元素删去。具体而言,可以通过遍历链表并记录已经出现的元素,然后在遍历过程中判断当前元素是否已经出现过,如果出现过,则删除当前元素。可以使用两个指针来实现这个功能,一个指针指向当前节点,另一个指针指向当前节点的前一个节点。遍历链表时,判断当前节点是否已经出现过,如果出现过,则删除当前节点。最后返回修改后的链表。