题目链接:点击这里
题意:两个整数的 汉明距离 指的是这两个数字的二进制数对应位不同的数量。
计算一个数组中,任意两个数之间汉明距离的总和。
class Solution {
public:
int totalHammingDistance(vector<int>& nums) {
int ans = 0;
for(int i = 0; i <= 30; ++i)
{
int cnt1 = 0, cnt0 = 0;
for(auto x : nums)
{
if(x >> i & 1) cnt1++;
else cnt0++;
}
ans += cnt0 * cnt1;
}
return ans;
}
};