设元素中除了某个孤立数外,其他数都出现过且只出现过N次,解题方法如下:
- 如果N为偶数,那么直接将每个元素异或后的结果即是最终结果
- 如果N为奇数,我们可以依次判断每一位为1还是为0
本题代码如下:
// // Created by jt on 2020/9/6. // class Solution { public: /** * * @param A int整型一维数组 * @param n int A数组长度 * @return int整型 */ int singleNumber(int* A, int n) { // write code here if (n < 1) return -1; int res = 0; for (int i = 0; i < 32; ++i) { // 判断每一位是1还是0 int bit = 0; for (int j = 0; j < n; ++j) { bit += (A[j] >> i) & 1; } res += (bit % 3) << i; } return res; } };