概述
数组A中,除了某一个数字x之外,其他数字都出现了三次,而x出现了一次。请给出最快的方法,找到x。
版权声明:本文为博主原创文章,未经博主允许不得转载。
数组A中,除了某一个数字x之外,其他数字都出现了三次,而x出现了一次。请给出最快的方法,找到x。
这是@陈利人http://weibo.com/1915548291/A8jX24VyW#_rnd1378555193798出的一道题。
类似的:数组A中,除了某一个数字x之外,其他数字都出现了三次,而x出现了两次。请给出最快的方法,找到x。
这道题是:数组A中,除了某一个数字x之外,其他数字都出现了两次,而x出现了一次。请给出最快的方法,找到x。的变种。
思路:http://blog.csdn.net/zhu_liangwei/article/details/11074997和这道题有些区别。
现在重新来看关于这几种题目,关键是找出一种多次出现对应位清零的技术。
异或运算是两次出现清零。
那么,三次出现清零呢?
在两次出现的基础上改进:如有已经两次出现了,如果再出现,让么算3次出现。
现在:
某一位偶数次出现1,使用even记录,对应为置为1;
某一位奇数次出现1,使用odd奇数,对应为置为1;
上一次某位偶数出现1,这次奇数出现1,说明是第三次,使用is_three,对应位清零。
具体代码:
最后
以上就是长情大树为你收集整理的数组A中,除了某一个数字x之外,其他数字都出现了三次,而x出现了一次。请给出最快的方法,找到x 数组A中,除了某一个数字x之外,其他数字都出现了三次,而x出现了一次。请给出最快的方法,找到x。的全部内容,希望文章能够帮你解决数组A中,除了某一个数字x之外,其他数字都出现了三次,而x出现了一次。请给出最快的方法,找到x 数组A中,除了某一个数字x之外,其他数字都出现了三次,而x出现了一次。请给出最快的方法,找到x。所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复