class Solution { public: intsingleNumber(vector<int>& nums){ sort(nums.begin(), nums.end()); int i = 0; while(i < nums.size() - 1) { if(nums[i] == nums[i + 1]) { i += 3; } else { return nums[i]; } } return nums[nums.size() - 1]; } };
O(N)
1 2 3 4 5 6 7 8 9 10 11 12
class Solution { public: intsingleNumber(vector<int>& nums){ int a = 0; int b = 0; for(int i = 0; i < nums.size(); i++) { a = (a ^ nums[i]) & (~b); b = (b ^ nums[i]) & (~a); } return a; } };