Dscription:
Given an array of integers, every element appears three times except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
Code:
1 int singleNumber(vector<int>& nums) { 2 int result = 0; 3 int n = nums.size(); 4 int length = 8*sizeof(int); 5 for (int i = 0; i < length; ++i) 6 { 7 int temp = 0; 8 for (int j = 0; j < n; ++j) 9 { 10 if (nums[j] & (1<<i)) 11 temp++; 12 } 13 temp %= 3; 14 result = result | (temp<<i); 15 } 16 return result; 17 }