题目描述
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
分类:数组
解法1:我们知道如果只有一个元素出现一次,那么通过亦或,可以找出这个元素。
如果有两个,思路是将这个两个分开,将相同的元素两个放到一边
首先将数组亦或,得出的数,其实是两个只出现一次的数字的亦或的结果
根据结果(二进制)的第一个1出现的位置,将数组中的元素分配到两边
这样相同的元素必然会分配到同一边,而两个只出现一次的元素会被分配到两边
将两边分别进行亦或即可
分类:数组
解法1:我们知道如果只有一个元素出现一次,那么通过亦或,可以找出这个元素。
如果有两个,思路是将这个两个分开,将相同的元素两个放到一边
首先将数组亦或,得出的数,其实是两个只出现一次的数字的亦或的结果
根据结果(二进制)的第一个1出现的位置,将数组中的元素分配到两边
这样相同的元素必然会分配到同一边,而两个只出现一次的元素会被分配到两边
将两边分别进行亦或即可
原文链接 http://blog.csdn.net/crazy__chen/article/details/45013375