来源:
lintcode-排序数组中的单个元素
描述
给定一个排序数组,只包含整数,其中每个元素出现两次,除了一个出现一次的元素。 找到只出现一次的单个元素。...遍历数组,对每个元素进行计数,之后返回只出现一次的元素.
逐个消除....从index=0开始,与之后的每一个元素比较,如果遇到相同的,则将两个元素一起移除掉,如果遍历至结尾,还没有和当前元素相同的,则返回当前元素.
但是今天我不用这两个方法,使用位运算符来解决....异或(^):
两个操作数的位中,相同则结果为0,不同则结果为1。
比如:7^6=1;怎么计算的呢?当然不是直接减法了!...出现两次的数字异或之后都为0,拿到0和唯一出现一次的数字异或,结果就是所求的只出现一次的数字.
所以此题的机智的解法就是:对数组中的所有数字异或即可.