leetcode-Single Number II

Difficulty: Medium

Given an array of integers, every element appears three times except for one. Find that single one.

Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?

class Solution {
public:
    int singleNumber(vector<int>& nums) {
        int res=0;
        for(int i=0;i<32;++i){
            int count=0;
            for(auto &e:nums){
                if(e&(1<<i))
                    ++count;
            }
            if(count%3!=0)
                res|=(1<<i);
        }
        return res;
    }
};


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