137. Single Number II

Given an array of integers, every element appears three times except for one. Find that single one.

使用一个32位数组来记录每一位上1出现的次数,如果没有那个特别的数,这个数组中每个元素应该都是3的倍数,加上这个数以后,哪个元素除不尽3就说明我们要找的这个数在这位上是1

var singleNumber = function(nums) {
    var result = 0;
    var rec = [];
    var n = nums.length;
    for(var i=0; i<32; i++){  
        for(var j=0; j<n; j++){  
            if (rec[i]===undefined)
                rec[i] = 0;
            rec[i]+=(nums[j]>>i)&1;  
        }  
        result|=(rec[i]%3)<<i;  
    }  
    return result;  
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容