标签:pairs this Plan range pos ret nts position AMM
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:
0
to 10^9
10^4
.class Solution { public int totalHammingDistance(int[] nums) { int res = 0; int le = nums.length; for(int i = 0; i < 32; i++){ int cur1 = 0; for(int j = 0; j < nums.length; j++){ cur1 += ((nums[j]>>i) & 1); } res += (cur1) * (le - cur1); } return res; } }
经过观察发现,每一位的汉明距离,等于该位1的个数*0的个数
然后就32位,每一位都统计1的数量然后做一次计算,返回
标签:pairs this Plan range pos ret nts position AMM
原文地址:https://www.cnblogs.com/wentiliangkaihua/p/13320613.html