Single Number II
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?
class Solution { public: int singleNumber(int A[], int n) { // Note: The Solution object is instantiated only once and is reused by each test case. assert(A&&n>0&&(n-1)%3==0); unsigned int ans=0; for(int i=0;i<32;i++) { const unsigned int MASK=(1<<i); int t=0; for(int j=0;j<n;j++) t+=(A[j]&MASK)>0?1:0; ans|=(t%3==0)?0:MASK; } return (int)ans; } };