遍历所有数字,统计每一位出现的次数,模3即为只出现一次的数字在那一位的情况。
代码:
1 int singleNumber(int A[], int n) { 2 int count[32] = {0}; 3 4 for (int i = 0; i < n; i++) { 5 for (int j = 0; j < 32; j++) { 6 count[j] += A[i] & 1; 7 A[i] >>= 1; 8 } 9 } 10 11 int res = 0; 12 for (int j = 0; j < 32; j++) { 13 res += (count[j] % 3) << j; 14 } 15 16 return res; 17 }