leetcode137 只出現一次的數字2

2021-10-05 12:30:17 字數 781 閱讀 5121

給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現了三次。找出那個只出現了一次的元素。

說明:

你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎?

示例 1

:輸入:[2

,2,3

,2]輸出:

3示例 2

:輸入:[0

,1,0

,1,0

,1,99

]輸出:

99

以例項1進行講解,[2,2,3,2]的二進位制表示形式為[10, 10, 11, 10]。

我們從低位向高位看,最低位的四個數字分別是0,0,1,0. 由於陣列中只有乙個數字出現乙個,其餘數字都出現了三次。因此最後一位的相加結果必定是3n(當單獨的數字最後一位是0時,結果是3n)或者3n+1(當單獨的數字最後一位是1時,結果是3n+1).我們將結果%3後就能知道單獨的數字在最後一位是0還是1.

以此類推,第二位的四個數字分別是1,1,1,1。相加後結果為4,4%3=1,表示單獨的數字第二位上是1.判斷完全部32位後,就可知道單獨的數字二進位制形式在每一位上的表示。

class

solution

}// 如果所有數字在該位上的總和%3之後不為0

// 表示單獨的數字的二進位制形式在該位置上是1if(

(tmp %3)

!=0)}

return res;}}

;

Leetcode137 只出現一次的數字

題目描述 給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現了三次。找出那個只出現了一次的元素。說明 你的演算法應該具有線性時間複雜度。你可以不使用額外空間來實現嗎?示例 1 輸入 2,2,3,2 輸出 3 示例 2 輸入 0,1,0,1,0,1,99 輸出 99 思路 對數字中數...

leetcode 137 只出現一次的數字 II

給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現了三次。找出那個只出現了一次的元素。說明 你的演算法應該具有線性時間複雜度。你可以不使用額外空間來實現嗎?這種純數字計算的問題,如果我們只用加減乘除就能做出來,那leetcode就太low了,這種問題,應該深入到位級別運算。思考,將...

leetcode137 只出現一次的數字詳解

原題連線 給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現了三次。找出那個只出現了一次的元素。說明 你的演算法應該具有線性時間複雜度。你可以不使用額外空間來實現嗎?示例 1 輸入 2,2,3,2 輸出 3 示例 2 輸入 0,1,0,1,0,1,99 輸出 99 3 函式f實現的...