classSolution{ publicintsingleNumber(int[] nums){ //整型最大32位,用32位数组存储 int[] temp = newint[32]; int result = 0;
//这里统计数组中每个数字对应二进制一的个数 for (int num : nums) { for (int i = 0; i < 32; i++) { temp[i] += num & 1; num >>>= 1; } } //最后统计只出现一次数字的数值 for (int i = 31; i >= 0; i--) { result <<= 1; result |= (temp[i] % 3); } return result; } }