从一百个数中找不存在的数

来源:互联网 发布:网络与新媒体就业方向 编辑:程序博客网 时间:2024/05/21 05:06
这个题目应该出现过了,使用异或运算应该是最快的方法了,加法也可以,但是加法应该比不上逻辑运算的速度。。
(另外我也想求求关于现代CPU执行 加法的需要多少时钟周期, 逻辑异或需要多少时钟周期 ? 的干货 )

首先得到 1-100 这些数字异或后得到的数字 Y= 1^2^..^100,使用循环99次得到.
然后用着Y 去异或那个99个数的数字, 最后Y里保存的就是缺失了的数字。 也是99次循环。

其实是同学提到的,他搞ACM,我很菜。。
原理:
Y = a^b^c;

e = Y ^ a ^ c = a^b^c^a^c = a^a^b^c^c = 0 ^ b ^ 0 = b .. 就是缺少了的b,异或运算的性质应该没记错。
原创粉丝点击