N+1个数字,其中有一个是重复的,要求找出来。
方法:累加后的和减掉1~N的和就是重复的那个数字。
方法2:使用bitmap或者hash表
1~N中缺少一个数字,要求找出来
方法1:累加后的和被1~N来减,就是那个数字
方法2:hash表。
N个数字是偶数对出现的,有个数字是单独出现的,要求找出来。
方法:所有数字进行异或,最后的值就是那个数字(a^a = 0)
N个数字是偶数对出现的,有两个数字(不相同)是奇数次出现的,要求找出来。
方法:
1 不断异或求得值为X,则X=a^b(其中ab就是那两个奇数次出现的数字)
2. 因为a!=b,所以X!=0。假设X的第K位为1
3. 则令X和所有第K位为1的数字进行异或,所得的数字即为ab中的一个。
4. X和3的结果进行异或就是ab种的另外一个。