# LeetCode 477. Total Hamming Distance

154 篇文章 0 订阅
8 篇文章 0 订阅

### 题目要求

The Hamming distance between two integers is the number of positions at which the corresponding bits are different.

Now your job is to find the total Hamming distance between all pairs of the given numbers.

Example:

Input: 4, 14, 2

Output: 6

Explanation: In binary representation, the 4 is 0100, 14 is 1110, and 2 is 0010 (just
showing the four bits relevant in this case). So the answer will be:
HammingDistance(4, 14) + HammingDistance(4, 2) + HammingDistance(14, 2) = 2 + 2 + 2 = 6.

Note:
1. Elements of the given array are in the range of 0 to 10^9
2. Length of the array will not exceed 10^4.

### 解题代码

    public int totalHammingDistance(int[] nums) {
int sum = 0;
for (int i = 0; i < 32; i++) {
int ones = 0;
for (int j = 0; j < nums.length; j++)
ones += (nums[j] >> i) & 0x1;
sum += ones * (nums.length - ones);
}
return sum;
}
• 0
点赞
• 0
收藏
觉得还不错? 一键收藏
• 0
评论
04-21 1634
03-03 275
09-05 503
12-05 297
02-07 7万+
03-08 3170
05-13 185

1.余额是钱包充值的虚拟货币，按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载，可以购买VIP、付费专栏及课程。