LeetCode—剑指Offer:数组中数字出现的次数Ⅱ

数组中数字出现的次数(中等)

2020年9月10日

题目来源:力扣

在这里插入图片描述

解题
每个数字都会出现3次的话,那么转成二进制相加,肯定会是3的倍数,对3求余的话,那个只出现一次的数字就会出现了。

class Solution {
    
    
    public int singleNumber(int[] nums) {
    
    
        int[] tmp=new int[32];
        for(int num:nums){
    
    
            for(int i=0;i<32;i++){
    
    
                //取最后一位
                tmp[i]+=num&1;
                num>>>=1;
            }
        }
        int res=0;
        for(int i=0;i<32;i++){
    
    
            res<<=1;
            res|=tmp[31-i]%3;
        }
        return res;
    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41541562/article/details/108506963
今日推荐