461. hamming distance
即求兩個正整數的二進位制對應位數不同的個數
從問題描述來看,最直觀的解決方法就是十進位制數先轉成二進位制,再比對相同位數是否相同,不同則計數器累加,最終計數器的值即是hamming distance
。
優化方案:先基於這個思想,需要用到的有^
運算,對運算結果的位數進行遍歷,1
則計數器累計
異或運算
和位運算
。
異或運算法則:相同為零,不同為一。
異或非運算法則:相同為一,不同為零。
即:
輸入a: 1 0 1 0
輸入b: 1 1 0 0
異或運算結果: 0 1 1 0
異或非(同或)運算結果:1 0 0 1
左移
右移
func hammingdistance(x int, y int) int
return counter
}
LeetCode之位運算
public intadd int a,int b return a 劍指offer 64 求1 2 n 難度 中等 求 1 2 n 要求不能使用乘除法 for while if else switch case等關鍵字及條件判斷語句 a?b c 題解 用遞迴的方法的 public intsumnu...
leetcode 快速冪運算(位運算)
題目描述 實現函式double power double base,int exponent 求base的exponent次方。不得使用庫函式,同時不需要考慮大數問題。實現 def mypow self,x float,n int float if x 0 return 0 res 1 if n 0...
LeetCode 位運算 位1的個數
編寫乙個函式,輸入是乙個無符號整數,返回其二進位制表示式中數字位數為 1 的個數 也被稱為漢明重量 示例 輸入 00000000000000000000000000001011 輸出 3 解釋 輸入的二進位制串 00000000000000000000000000001011 中,共有三位為 1 輸...