ID | Title | Difficulty | |
---|---|---|---|
Loading... |
477. Total Hamming Distance
Medium
LeetCode
Array, Math, Bit Manipulation
Problem
The Hamming distance between two integers is the number of positions at which the corresponding bits are different.
Given an integer array nums, return the sum of Hamming distances between all the pairs of the integers in nums.
Example 1:
Input: nums = [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).
The answer will be:
HammingDistance(4, 14) + HammingDistance(4, 2) + HammingDistance(14, 2) = 2 + 2 + 2 = 6.
Example 2:
Input: nums = [4,14,4]
Output: 4
Constraints:
- 1 <= nums.length <= 10^4
- 0 <= nums[i] <= 10^9
- The answer for the given input will fit in a 32-bit integer.
Code
class Solution {
public int totalHammingDistance(int[] nums) {
int res = 0;
for(int i = 0; i < 32; i++){
int count = 0;
for(int num : nums){
if((num & (1 << i)) != 0){
count++;
}
}
res += count * (nums.length - count);
}
return res;
}
}
按 <- 键看上一题!
476. Number Complement
按 -> 键看下一题!
478. Generate Random Point in a Circle