Lintcode83 Single Number ||solution 題解

【題目描述】

Given3*n + 1numbers, every numbers occurs triple times except one, find it.

給出3*n + 1 個的數字,除其中一個數字之外其他每個數字均出現三次,找到這個數字。

【題目鏈接】

www.lintcode.com/en/problem/single-number-ii/

【題目解析】

這題給出的元素數目為3*n + 1,因此我們很自然地想到如果有種運算能滿足「三三運算」為0該有多好!對于三個相同的數來說,其相加的和必然是3的倍數,僅僅使用這一個特性還不足以將單數找出來,我們再來挖掘隱含的信息。以3為例,若使用不進位加法,三個3相加的結果為:0011+0011+0011=0033.

注意到其中的奧義了么?三個相同的數相加,不僅其和能被3整除,其二進制位上的每一位也能被3整除。因此我們只需要一個和int類型相同大小的數組記錄每一位累加的結果即可。

【參考答案】

www.jiuzhang.com/solutions/single-number-ii/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容