.编写一个函数 find duplicates(arr),接收一个整数数组作为参数,返回该数组中所有重复出现的元素
时间: 2024-10-10 08:03:51 浏览: 43
c语言-leetcode题解之0080-remove-duplicates-from-sorted-array-ii.zip
在Python中,你可以使用集合(set)数据结构来编写一个简单的函数find_duplicates,因为集合不会包含重复元素,所以我们可以先将数组转换成集合,然后再将其转回列表。那些在原数组中出现超过一次但在转回的列表中只出现一次的元素就是重复的。
以下是函数的实现:
```python
def find_duplicates(arr):
# 将数组转换为集合去除重复
unique_elements = set(arr)
# 计算原数组长度和去重后的集合长度差
# 如果差值大于0,则表示有重复元素
count_diff = len(arr) - len(unique_elements)
# 创建一个空列表存储重复元素
duplicates = [i for i in arr if arr.count(i) > 1]
# 如果发现有重复,返回重复元素列表,否则返回空列表
return duplicates if count_diff > 0 else []
# 示例
arr = [1, 2, 3, 4, 5, 2, 6, 7, 3]
print(find_duplicates(arr)) # 输出: [2, 3]
```
阅读全文