2016-10-13 08:01发布
有一堆数,其中有两个数出现了一次,其他的数都出现了两次。怎样将这两个只出现一次的数找出来?排除打表,统计外有什么更为高效的方法。
1先把所有数字 做 异或操作 得到数字 S2 从高到低位检查 S 的 bit 找到第一个 1 3 检查所有数字 根据 这个bit位是1 还是 0 把 原来的数组划分为 两个4 对每个数组 ,把数组内的数字做 异或操作。分别得到数字 A ,B5 数字 A ,B 即为所求
最多设置5个标签!
1先把所有数字 做 异或操作 得到数字 S
2 从高到低位检查 S 的 bit 找到第一个 1
3 检查所有数字 根据 这个bit位是1 还是 0 把 原来的数组划分为 两个
4 对每个数组 ,把数组内的数字做 异或操作。分别得到数字 A ,B
5 数字 A ,B 即为所求
一周热门 更多>