Given an array of integers, every element appears three times except for one. Find that single one.
給一個(gè)數(shù)組,每個(gè)數(shù)字都出現(xiàn)三次惫确,只有一個(gè)數(shù)字出現(xiàn)一次,找出這個(gè)出現(xiàn)一次的數(shù)字募舟。
參考代碼:
解題思路:定義長(zhǎng)度32的數(shù)組,每個(gè)位置存儲(chǔ)的是闯袒,nums里每個(gè)數(shù)字的第i個(gè)位置的 1 的個(gè)數(shù)历帚,存儲(chǔ)完畢i的位置的 1 的個(gè)數(shù)后沽甥,進(jìn)行取模3運(yùn)算,如果結(jié)果為 0 說(shuō)明被求數(shù)字在這個(gè)位置上的bit是0驻仅,如果為 1 則說(shuō)明被求數(shù)字這個(gè)位置上的數(shù)字是 1谅畅,一次類推,求完第一個(gè)位置噪服,求第二個(gè)毡泻,再求第 i 個(gè) 位置,所有的結(jié)果進(jìn)行 或(|) 運(yùn)算粘优,最終把所求的數(shù)字求出仇味。
時(shí)間是 O(32*N),如果把出現(xiàn)3次改為k次雹顺,只需要改為 模 k即可