題目描述
編寫乙個函式,輸入是乙個無符號整數(以二進位制串的形式),返回其二進位制表示式中數字位數為 『1』 的個數(也被稱為漢明重量)。
高階:
示例 1:
輸入:00000000000000000000000000001011
輸出:3
解釋:輸入的二進位制串 00000000000000000000000000001011 中,共有三位為 '1'。
示例 2:
輸入:00000000000000000000000010000000
輸出:1
解釋:輸入的二進位制串 00000000000000000000000010000000 中,共有一位為 '1'。
示例 3:
輸入:11111111111111111111111111111101
輸出:31
解釋:輸入的二進位制串 11111111111111111111111111111101 中,共有 31 位為 '1'。
題解:法一:
依次列舉每一位二進位制,判斷是否為1
。
class
solution
return num;}}
;/*記憶體:5.8mb,擊敗:93.18%
*/
法二:
利用lowbit(x) = x & -x
提取最右邊一位1
,不停減去最右邊的1
class
solution
return num;}}
;/*記憶體:5.7mb,擊敗:97.78%
*/
法三:
利用x & (x -1)
將最右邊的一位1
變成0
,不停消去1
。
class
solution
return num;}}
;/*記憶體:5.8mb,擊敗:93.89%
*/
時間複雜度:o(1
)o(1)
o(1)
額外空間複雜度:o(1
)o(1)
o(1)
191 位1的個數
編寫乙個函式,輸入是乙個無符號整數,返回其二進位制表示式中數字位數為 1 的個數 也被稱為漢明重量 輸入 00000000000000000000000000001011 輸出 3 解釋 輸入的二進位制串 00000000000000000000000000001011 中,共有三位為 1 思路,就...
簡單 191 位1的個數
簡單 191.位1的個數 編寫乙個函式,輸入是乙個無符號整數,返回其二進位制表示式中數字位數為 1 的個數 也被稱為漢明重量 示例 1 輸入 00000000000000000000000000001011 輸出 3 解釋 輸入的二進位制串 00000000000000000000000000001...
Leetcode191 位1的個數
題目 編寫乙個函式,輸入是乙個無符號整數,返回其二進位制表示式中數字位數為 1 的個數 也被稱為漢明重量 輸入 11111111111111111111111111111101 輸出 31 解釋 輸入的二進位制串 11111111111111111111111111111101 中,共有 31 位為...