[leetcode] Single Number II

Single Number II

class Solution {
public:
    int singleNumber(int A[], int n) {
        const int N=sizeof(int)*8;//二进制位数
        int count[N];//count[i]表示在i位出现1的次数
        fill_n(&count[0],N,0);//初始化count为0
        
        for(int i=0;i<n;i++){
            for(int j=0;j<N;j++){
                count[j]+=(A[i]>>j)&1;
                count[j]%=3;//对3取余
            }
        }
        int res=0;
        for(int i=0;i<N;i++){
            res+=(count[i]<<i);
        }
        return res;
    }
};



你可能感兴趣的:([leetcode] Single Number II)