题目:一个特别大的整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
思路:1. 对数组中所有数按位异或,抵消掉所有重复数字,异或结果为这两个只出现一次的数组的异或结果。
2. 按上一个异或结果的第一个为1的位,重新将大数组分为两类,分别对这两组数异或,最终结果为要找的这两个数。
题目:一个特别大的整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
思路:1. 对数组中所有数按位异或,抵消掉所有重复数字,异或结果为这两个只出现一次的数组的异或结果。
2. 按上一个异或结果的第一个为1的位,重新将大数组分为两类,分别对这两组数异或,最终结果为要找的这两个数。