首页 > 试题广场 >

找出数组中只出现1次的数,其余数均出现2次,扩展,其余数出现

[问答题]

找出数组中只出现1次的数,其余数均出现2次,扩展,其余数出现2次以上

另加一种问题:求解数组中只出现一次的两个数

vector<int> findNumsAppearOnce(vector<int>& nums) {
    int sum=0;
    for(auto x:nums)
        sum^=x;
    int k=0;
    while(!(sum>>k&1)) k++;
    int first=0;
    for(auto x:nums){
        if(x>>k&&1)
            first^=x;
    }
    return vector<int>{(first,sum^first)};
}
发表于 2019-06-02 19:41:36 回复(0)