477 漢明距離總和

2021-09-11 03:57:53 字數 865 閱讀 2166

兩個整數的 漢明距離 指的是這兩個數字的二進位制數對應位不同的數量。

計算乙個陣列中,任意兩個數之間漢明距離的總和。

示例:輸入: 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。

思路:漢明距離可以讓兩個整數進行異或運算,然後計算得到的數字的二進位制1的個數即可

嘗試了一下暴力法,超時

class solution 

return count;

} int totalhammingdistance(vector& nums)

};

思路2:

這次我們換個思路,我們嘗試在一次迴圈中計算整個陣列的所有數字的二進位制第一位是1的個數和0的個數,這樣一次迴圈完了第一位的漢明距離就是countof1*countof0,然後下一次迴圈計算所有數字的第二位,以此類推

維持乙個temp記錄陣列中數字變成0 的個數,當temp==nums.size(),說明所有數字都已經移位完了,退出迴圈

class solution 

res += countof0*countof1;

if (temp == nums.size())break;

} return res;

}};

477 漢明距離總和

兩個整數的 漢明距離 指的是這兩個數字的二進位制數對應位不同的數量。計算乙個陣列中,任意兩個數之間漢明距離的總和。示例 輸入 4,14,2 輸出 6 解釋 在二進位制表示中,4表示為0100,14表示為1110,2表示為0010。這樣表示是為了體現後四位之間關係 所以答案為 hammingdista...

477 漢明距離總和(位運算)

1.問題描述 兩個整數的漢明距離指的是這兩個數字的二進位制數對應位不同的數量。計算乙個陣列中,任意兩個數之間漢明距離的總和。示例 輸入 4,14,2 輸出 6 解釋 在二進位制表示中,4表示為0100,14表示為1110,2表示為0010。這樣表示是為了體現後四位之間關係 所以答案為 hamming...

漢明距離總和

題目 兩個證書的漢明距離指的是這兩個數字的二進位制數對應值不同的數量。計算乙個陣列中,任意兩個數之間漢明距離的總和。示例 輸入 4,14,2 輸出 6 解釋 在二進位制表示中,4表示為0100,14表示為1110,2表示為0010。這樣表示是為了提現後四位之間的關係 所以答案為 hammingdis...