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

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

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

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

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

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

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

转载于:https://www.cnblogs.com/LeeZz/p/4498985.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值