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

本题来自《剑指offer》 数组中只出现一次的数字

题目:

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

思路:

   思路一:在《剑指offer》书上,采用了异或的方式,未详看。

  思路二:在python中,将第一个数据放入其中,从第二个开始遍历,如果已经存在缓存中,那么就去除掉,否则就加入其中,遍历一次的时间复杂为O(n),空间复杂度为O(1)常熟级别的。

C++ Code:

Python Code:

# -*- coding:utf-8 -*-
class Solution:
                                            # 返回[a,b] 其中ab是出现一次的两个数字
    def FindNumsAppearOnce(self, array):
        # write code here
        result = []
        result.append(array[0])             #放置第一个元素
        for index in range(1,len(array)):   #从第二个元素开始遍历
            if array[index] in result:      #如果已经存在了就将删除
                result.remove(array[index])
            else:                           #如果第一次出现就加入到列表中
                result.append(array[index])
        return result                       #最后返回,只有单个的字符了

总结:

原文地址:https://www.cnblogs.com/missidiot/p/10826122.html