
class Solution {
public:
int totalHammingDistance(vector<int>& nums) {
int res=0;
for(int i=0;i<=30;i++)//位数
{
int rec=0;
for(auto p:nums)
if(p>>i&1)rec+=1;//统计每个元素当前位数1的个数
res+=rec*(nums.size()-rec); //0*1的总个数就是当前位的汉明距离
}
return res;
}
};
本文深入探讨了汉明距离的概念及其在位运算上的应用。通过一个C++代码示例,详细解释了如何计算一个整数数组中所有不同元素对之间的汉明距离总和。此算法通过对每一位进行统计,巧妙地利用了位操作的特性,实现了高效计算。

315

被折叠的 条评论
为什么被折叠?



