k=1:直接全部异或起来。
k=2:假设出现奇数次的是a和b,那么把所有数异或起来得到的就是s=a^b。
对每个二进制位维护一个数xw[i],当读入一个x,x的第j位为1的时候,就把xw[j]^=x。
对于s的最高位的1,那么一定是a和b之中,一个这一位为1,一个这一位为0。假设是第j位,那么xw[j]肯定就是其中一个数。
1 |
|
赏
使用支付宝打赏
使用微信打赏
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏