📜  门|门 IT 2005 |第 68 题(1)

📅  最后修改于: 2023-12-03 14:58:35.697000             🧑  作者: Mango

门|门 IT 2005 | 第 68 题

概述

"门|门 IT 2005 | 第 68 题" 是一个经典的编程题目,被广泛用于程序员的招聘面试和编程考试中。它旨在测试程序员的逻辑思维和编程能力。

题目描述

给定一个长度为 n 的正整数数组,数组中的元素范围在 1 到 n 之间(包括 1 和 n)。请编写一个函数,找出数组中唯一重复的数字。

输入

一个长度为 n 的正整数数组。

输出

唯一重复的数字。

示例

输入:

[1, 2, 3, 3, 4, 5]

输出:

3
解题思路

这道题目可以使用哈希表来解决。遍历数组中的每个元素,将其作为键存储到哈希表中。如果已经存在该键,则说明该数字是唯一重复的数字。最后返回唯一重复的数字即可。

以下是一个 Python 实现的示例代码片段:

def find_duplicate(nums):
    seen = set()
    for num in nums:
        if num in seen:
            return num
        seen.add(num)
复杂度分析
  • 时间复杂度: O(n),遍历整个数组一次。
  • 空间复杂度: O(n),需要额外的空间来存储哈希表。
总结

"门|门 IT 2005 | 第 68 题" 是一个考察程序员逻辑和编程能力的经典编程题目。通过使用哈希表来解决,我们可以在线性时间内找到唯一重复的数字。编程考试和招聘面试中经常出现这样的题目,掌握了解题思路可以提高应聘者的竞争力。