LeetCode Weekly Contest 13-TotalHamming Distance【中】
2016-12-19 09:49
441 查看
TotalHamming Distance
The
Hamming distance between two integers is thenumber of positions at which the corresponding bits are different.
Now your job is to find the totalHamming 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 thiscase). So the answer will be:
HammingDistance(4, 14) +HammingDistance(4, 2) + HammingDistance(14, 2) = 2 + 2 + 2 = 6.
Note:
Elements of the given array are in therange of 0 to 10^9
Length of the array will not exceed 10^4.
The
Hamming distance between two integers is thenumber of positions at which the corresponding bits are different.
Now your job is to find the totalHamming 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 thiscase). So the answer will be:
HammingDistance(4, 14) +HammingDistance(4, 2) + HammingDistance(14, 2) = 2 + 2 + 2 = 6.
Note:
Elements of the given array are in therange of 0 to 10^9
Length of the array will not exceed 10^4.
class Solution { public: void itoa(char* p, int x) { int i = 0; while(x > 0) { p[i ++] = x % 2 + '0'; x = x / 2; } } int totalHammingDistance(vector<int>& nums) { int isize = nums.size(); if(isize == 0) return 0; char arrays[10004][33] = {0}; int i = 0, j = 0, iResult = 0; for(i = 0; i < isize; i ++) { itoa((char*)arrays[i], nums[i]); //for(j = 0; j < 32; j ++) // std::cout<<(char)arrays[i][j]<<" "; //std::cout<<std::endl; } int iOne, iZero; for(i = 0; i < 32; i ++) { iOne = 0; iZero = 0; for(j = 0; j < isize; j ++) { if(arrays[j][i] == '0' || arrays[j][i] == 0) iZero ++; if(arrays[j][i] == '1') iOne ++; } //std::cout<<iZero<<" "<<iOne<<std::endl; iResult += iZero * iOne; } return iResult; } };
相关文章推荐
- [LeetCode] Total Hamming Distance 全部汉明距离
- [leetcode, python] Total Hamming Distance 多个数字之间的汉明距离
- leetcode 477 Total Hamming Distance
- [leetcode, python] Total Hamming Distance 多个数字之间的汉明距离
- 【LeetCode-477】Total Hamming Distance
- [leetcode, python] Total Hamming Distance 多个数字之间的汉明距离
- leetcode-Total Hamming Distance
- LeetCode No.477 TotalHammingDistance
- [leetcode, python] Total Hamming Distance 多个数字之间的汉明距离
- LeetCode 477: Total Hamming Distance
- LeetCode Weekly Contest 56 Find K-th Smallest Pair Distance
- [leetcode, python] Total Hamming Distance 多个数字之间的汉明距离
- LeetCode Total Hamming Distance
- [leetcode, python] Total Hamming Distance 多个数字之间的汉明距离
- Leetcode 477 Total Hamming Distance
- LeetCode Weekly Contest 13-HammingDistance【易】
- LeetCode Weekly Contest 13-Matchsticks to Square【中】
- Leetcode Total Hamming Distance 477
- [LeetCode]Total Hamming Distance(Java)
- LeetCode Total Hamming Distance