137_SingleNumberII - a920604a/leetcode GitHub Wiki
title: 137. Single Number II
從一維陣列找出那個不重複的數字,假設其他數字皆會出現三次
- 利用2進位表示法,逐一去將第i位元相加,並除以3
class Solution {
public:
int singleNumber(vector<int>& nums) {
int ret = 0;
for(int i=31;i>-1;--i){
int sum = 0;
for(int n:nums){
sum+= (n>>i)&1;
}
sum%=3;
ret+= sum<<i;
}
return ret;
}
};
- time complexity
O(n)
- space complexity
O(1)