有个问题相求。
找出所缺数之变体。
原帖在
http://tieba.baidu.com/p/1678510732其中,serviper的解法:
蛋疼了。这样吧:设2^k <= n < 2^(k+1),则A中的全部整数二进制表示第i位中的0~k位,其0、1数必相等(n奇),或0比1多一个(n偶)。从而首先对全部整数的最低位作检查,确认缺失数的最低位,同时根据最低位排除掉一半数字。对剩下的数字第二位再作相同的排查,如此进行直到第k位的排查结束后,应当出现了缺失数字的低k位。最高一位的情况,重新对A中全部整数的最高位进行扫描,其中1的数目应当为(n+1) - 2^k个,从而确定出缺失数字的最高位。
这样的总检查数不超过3n, 需要的辅助空间是O(n).
看不懂。
下文tcet030840zxp的解法倒看懂了。
求教。求指点
@不结尾