Total Hamming Distance
Description
Elements of the given array are in the range of 0 to 10^9
Length of the array will not exceed 10^4.Solution
class Solution {
public:
int totalHammingDistance(vector<int>& nums) {
vector<int> ones(30, 0); // 30 because 10^9 < 2^31
for(int num : nums)
for(int i = 0; num; ++i, num >>= 1)
ones[i] += num & 0x1;
int d = 0;
for(int i = 0; i < 30; ++i)
d += ones[i] * (nums.size() - ones[i]);
return d;
}
};Last updated