題目描述:
兩個整數的 漢明距離 指的是這兩個數字的二進位制數對應位不同的數量。
計算乙個陣列中,任意兩個數之間漢明距離的總和。
示例:輸入: 4, 14, 2
輸出: 6
解釋: 在二進位制表示中,4表示為0100,14表示為1110,2表示為0010。(這樣表示是為了體現後四位之間關係)
所以答案為:
hammingdistance(4, 14) + hammingdistance(4, 2) + hammingdistance(14, 2) = 2 + 2 + 2 = 6.
注意:陣列中元素的範圍為從 0到 10^9。
陣列的長度不超過 10^4。
首先用bitcount肯定是沒有問題,但是效率太低,而且複雜度為(o(n * n)),因此考慮使用下面這個
首先取出對應位的1的個數,然後和(len - 1的總和)相乘,總共外迴圈為32次,內迴圈是對每乙個數字得出1和0的個數,接下來有這個定律:如果1的個數是m,0的個數是n那麼總的漢明距離就是n*m(可以自己得出的)
**:
class solution
result += tem * (len - tem);
} return result;
}}
漢明距離總和
題目 兩個證書的漢明距離指的是這兩個數字的二進位制數對應值不同的數量。計算乙個陣列中,任意兩個數之間漢明距離的總和。示例 輸入 4,14,2 輸出 6 解釋 在二進位制表示中,4表示為0100,14表示為1110,2表示為0010。這樣表示是為了提現後四位之間的關係 所以答案為 hammingdis...
漢明距離總和
兩個整數的 漢明距離 指的是這兩個數字的二進位制數對應位不同的數量。計算乙個陣列中,任意兩個數之間漢明距離的總和。原題 示例 輸入 4,14,2 輸出 6 解釋 在二進位制表示中,4表示為0100,14表示為1110,2表示為0010。這樣表示是為了體現後四位之間關係 所以答案為 hammingdi...
477 漢明距離總和
兩個整數的 漢明距離 指的是這兩個數字的二進位制數對應位不同的數量。計算乙個陣列中,任意兩個數之間漢明距離的總和。示例 輸入 4,14,2 輸出 6 解釋 在二進位制表示中,4表示為0100,14表示為1110,2表示為0010。這樣表示是為了體現後四位之間關係 所以答案為 hammingdista...