换个角度看世界,才能领略世界的美。
class Solution {
public int totalHammingDistance(int[] nums) {
int ans = 0;
int len = nums.length;
int[] cnt = new int[32];
for (int i = 0; i < len; i++) {
int st = 0;
while(nums[i] != 0) {
cnt[st++] += nums[i] & 1;
nums[i] >>= 1;
}
}
for (int i : cnt) {
ans += i * (len-i);
}
return ans;
}
}

这篇博客探讨了一种使用位操作计算整数数组中所有元素汉明距离总和的方法。通过位运算优化,实现了高效地计算每个元素的二进制表示中1的个数,并进一步计算两两之间的差异,最终得出总汉明距离。

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



