📌  相关文章
📜  国际空间研究组织 | ISRO CS 2017 |问题 13(1)

📅  最后修改于: 2023-12-03 15:07:34.676000             🧑  作者: Mango

国际空间研究组织 | ISRO CS 2017 |问题 13

题目描述

一个由数个整数组成的数组,找到只出现一次的数。

示例

输入: [1, 2, 1, 3, 3]

输出: [2]

解题思路

我们可以遍历数组,对每个数进行统计其出现的次数。最后再遍历一次数组,找到只出现一次的数,添加到一个新的数组中并返回。

Python 代码示例:

def find_single(nums):
    """
    :type nums: List[int]
    :rtype: List[int]
    """
    result = []
    for num in nums:
        if nums.count(num) == 1:
            result.append(num)
    return result

时间复杂度:$O(n^2)$,空间复杂度:$O(n)$。

优化解法

为了提高时间复杂度,我们可以使用哈希表来记录每个数出现的次数。

Python 代码示例:

def find_single(nums):
    """
    :type nums: List[int]
    :rtype: List[int]
    """
    count = {}
    for num in nums:
        count[num] = count.get(num, 0) + 1
    result = [num for num in count if count[num] == 1]
    return result

时间复杂度:$O(n)$,空间复杂度:$O(n)$。