直接翻译统计

  1. 注意,在将二进制翻译成十进制的时候,需要从前往后遍历。

    1. class Solution {
    2. public int singleNumber(int[] nums) {
    3. if (nums == null || nums.length == 0) return 0;
    4. int[] bitCount = new int[32];
    5. for (int i = 0; i < nums.length; i++) {
    6. int mask = 1;
    7. for (int j = 31; j >= 0; j--) {
    8. if ((mask & nums[i]) != 0) {
    9. bitCount[j]++;
    10. }
    11. mask <<= 1;
    12. }
    13. }
    14. int res = 0;
    15. // 需要从前往后遍历
    16. for (int i = 0; i < bitCount.length; i++) {
    17. res <<= 1;
    18. res += bitCount[i] % 3;
    19. }
    20. return res;
    21. }
    22. }