数组中只出现一次的数字

Posted yqpy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组中只出现一次的数字相关的知识,希望对你有一定的参考价值。

题目描述

一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请写程序找出这两个只出现一次的数字。

思路

和那道字符串里面第一次出现唯一字符的题目类似,使用count计数方法;另外百度了一下发现还可以用collections模块的Counter方法,把列表值和对应的个数组成一个字典

 方法一:

class Solution:
    # 返回[a,b] 其中ab是出现一次的两个数字
    def FindNumsAppearOnce(self, array):
        # write code here
        targets = []
        for num in array:
            if array.count(num)==1 and num not in targets:
                targets.append(num)
        return targets

方法二:

import collections
class Solution:
    # 返回[a,b] 其中ab是出现一次的两个数字
    def FindNumsAppearOnce(self, array):
        # write code here
        targets = []
        dic = collections.Counter(array)
        for key,value in dic.items():
            if value < 2:
                targets.append(key)
        return targets

 

以上是关于数组中只出现一次的数字的主要内容,如果未能解决你的问题,请参考以下文章

剑指Offer 数组中只出现一次的数字

剑指offer:数组中只出现一次的数字

数组中只出现一次的数字

求数组中只出现一次的两个数字

数组中只出现一次的数字(数组中唯一只出现一次的数字)

剑指OFFER 数组中只出现一次的数字