added bit-manupulation/total-hamming-distance
parent
d3c2184af8
commit
56ae1fee9e
|
@ -0,0 +1,37 @@
|
||||||
|
#include<bits/stdc++.h>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
public:
|
||||||
|
int totalHammingDistance(vector<int>& nums) {
|
||||||
|
int i,j,k,one,zero;
|
||||||
|
int result = 0;
|
||||||
|
for(i = 0; i < 32; i++){
|
||||||
|
k = 1 << i;
|
||||||
|
one = 0;
|
||||||
|
zero = 0;
|
||||||
|
for(auto value: nums){
|
||||||
|
if((value & k)) one++;
|
||||||
|
else zero++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(one == nums.size() || zero == nums.size()) continue;
|
||||||
|
|
||||||
|
result += one*zero;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
vector<int> nums{4,14,2};
|
||||||
|
|
||||||
|
Solution solution;
|
||||||
|
|
||||||
|
cout<<"Total hammind distance: ";
|
||||||
|
cout<<solution.totalHammingDistance(nums)<<endl;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue