56 - II. 数组中数字出现的次数 II

在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。

 

示例 1:

输入:nums = [3,4,3,3]
输出:4

示例 2:

输入:nums = [9,1,7,9,7,9,7]
输出:1

 

限制:

  • 1 <= nums.length <= 10000
  • 1 <= nums[i] < 2^31

class Solution {
    public int singleNumber(int[] nums) {
        int res = 0;
        for(int i = 0;i < 32;i++){
            int count = 0;
            for(int j = 0;j < nums.length;j++){
                //右数i位置处为1
                if((nums[j] & (1<<i)) != 0){
                    count++;
                }
            }
            if(count % 3 != 0){
                res += 1 << i;
            }
        }
        return res;
    }
}

 

posted @ 2020-04-03 17:44  海绵爱上星  阅读(94)  评论(0编辑  收藏  举报