题目:
一个整形数组里除了两个数字之外,其他数字都出现了两次,请写程序找出这两个只出现一次的数字,例如数组为{1,3,5,7,1,3,5,9},找出7和9
思路:
(1)先遍历并按位与之后得到的是这个数组中出现一次的两个数按位与的结果
(2)在这个结果中找到2进制的1,并且记录下产生不同1的位置
(3)将数字按照上面记录的不同位置分成两类,再分别再不同类中与0按位与
源码:
运行结果如下:
题目:
一个整形数组里除了两个数字之外,其他数字都出现了两次,请写程序找出这两个只出现一次的数字,例如数组为{1,3,5,7,1,3,5,9},找出7和9
思路:
(1)先遍历并按位与之后得到的是这个数组中出现一次的两个数按位与的结果
(2)在这个结果中找到2进制的1,并且记录下产生不同1的位置
(3)将数字按照上面记录的不同位置分成两类,再分别再不同类中与0按位与
源码:
运行结果如下: