本题来自《剑指offer》 数组中只出现一次的数字
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
思路一:在《剑指offer》书上,采用了异或的方式,未详看。
思路二:在python中,将第一个数据放入其中,从第二个开始遍历,如果已经存在缓存中,那么就去除掉,否则就加入其中,遍历一次的时间复杂为O(n),空间复杂度为O(1)常熟级别的。
# -*- 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