📜  门| Sudo GATE 2021 测验 |第 44 题(1)

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

门 Sudo GATE 2021 测验 | 第 44 题

题目描述

门 Sudo GATE 2021 测验是一个程序员面试准备的在线测验,第 44 题是其中的一个问题。考生需要编写代码来解决该问题。以下是问题的描述:

给定一个列表 nums,其中的元素都是非负整数。你的任务是找到该列表中唯一出现一次的数字,并将其返回。

注意:列表中其他出现多次的数字都会成对出现。

示例

输入:

[1, 2, 2, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8]

输出:

1
解题思路

为了找到列表中唯一出现一次的数字,我们可以使用哈希表来记录每个数字的出现次数。遍历整个列表,对于遇到的每个数字,如果哈希表中不存在该数字,则将其添加到哈希表中,并将其值设置为1。否则,将其值递增1。

最后,遍历哈希表,找到值为1的键,并将其返回作为结果。

代码实现

下面是一个使用 Python 实现的示例代码:

def find_unique_number(nums):
    num_count = {}
    for num in nums:
        if num not in num_count:
            num_count[num] = 1
        else:
            num_count[num] += 1
    for num, count in num_count.items():
        if count == 1:
            return num
复杂度分析

该解法的时间复杂度为 O(n),其中 n 是列表的长度。我们需要遍历整个列表来计算每个数字的出现次数,并遍历哈希表来找到唯一出现一次的数字。

空间复杂度为 O(n),哈希表最多需要存储列表中的所有元素,因此空间复杂度与列表的大小成正比。