📅  最后修改于: 2023-12-03 15:23:02.852000             🧑  作者: Mango
这是一个来自国际空间研究组织(ISRO)的问题,出现在2009年的ISRO CS考试中。问题的描述如下:
Q:已知一个整数数组,数组中的每个元素都是正整数,试写一个算法查找其中的重复元素。
这是一道经典的算法问题,通常有多种解法。以下介绍一种简单有效的解法。
我们可以利用Python的集合(set)数据类型来快速地查找重复元素。具体步骤如下:
seen
,用于存储已经出现过的元素。seen
中出现过,则说明它是重复元素,返回它的值即可。seen
中出现过,则将它加入集合seen
中。下面是Python实现的代码片段:
def find_duplicate(nums):
seen = set()
for num in nums:
if num in seen:
return num
seen.add(num)
return None
我们可以使用以下代码来测试find_duplicate
函数:
nums = [1, 2, 3, 4, 5, 5]
print(find_duplicate(nums)) # Output: 5
nums = [1, 2, 3, 4, 5]
print(find_duplicate(nums)) # Output: None
本文介绍了一个简单有效的算法,用于查找整数数组中的重复元素。需要注意的是,该算法的时间复杂度为O(n),其中n为数组中元素的个数。如果数组较大,该算法的运行时间可能会比较长,此时需要采用其他更加高效的算法。