137. Single Number II

由于所有數(shù)字都出現(xiàn)奇數(shù)次,
所以無(wú)法直接使用異或操作??紤]到計(jì)算機(jī)使用二進(jìn)制存儲(chǔ)數(shù)字,可以建立一個(gè)32
位的數(shù)字,統(tǒng)計(jì)每一位1出現(xiàn)的次數(shù),如果一個(gè)整數(shù)出現(xiàn)了三次,那么三個(gè)0或者三
個(gè)1對(duì)3取余都為0,對(duì)每個(gè)數(shù)的對(duì)應(yīng)位都加起來(lái)對(duì)3取余,剩下的就是 Single
Number 。

int singleNumber(int* nums, int numsSize) {
    
    int * bit = calloc(32, sizeof(int));
    
    int result = 0;
    for(int i = 0; i < 32; i++){
        for(int j = 0; j < numsSize;j++){
            bit[i] += nums[j]>>i&0x1;
            bit[i] %= 3;
        }
        
        result |= bit[i]<<i;
        
    }
    
    return result;
    
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容