经典面试题-数组中只出现一个的数(2)

【题目】:数组中只有一个数字出现过一次,其他的数字出现过三次。求出出现过一次的那个数字。

【解析】:这个题和上一个题目有一点区别,就是数字不是出现了两次,而是三次。这时,有些人想是不是还可以

用异或处理呢?其实,我们要通过问题看本质,上一道题为什么可以用异或呢?其实我们是把数字变成二进制来进行的

思考。用异或是因为其他数字出现过两次这个特性决定的,而在本题其他数字是出现了三次。从而,我们再重新分析发现,

数字转化成二进制,出现过三次的数字的和,在二进制的每一位都是可以被三整除的。这样再加上那个只出现过一次的数,

对二进制的每一位对三求余,得到的数字就是我们要求的了。

posted @ 2015-05-12 22:55  LeeZz  阅读(182)  评论(0编辑  收藏  举报