Given an array of integers, every element appears three times except for one. Find that single one.
使用一個32位數(shù)組來記錄每一位上1出現(xiàn)的次數(shù),如果沒有那個特別的數(shù),這個數(shù)組中每個元素應(yīng)該都是3的倍數(shù),加上這個數(shù)以后,哪個元素除不盡3就說明我們要找的這個數(shù)在這位上是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;
};