简述网站制作过程,企业网络推广网站建设,wordpress备案号修改,宁波网络优化seotheme: healer-readable 题目
两个整数的 汉明距离 指的是这两个数字的二进制数对应位不同的数量。
计算一个数组中#xff0c;任意两个数之间汉明距离的总和。
示例:
输入: 4, 14, 2
输出: 6
解释: 在二进制表示中#xff0c;4表示为0100#xff0c;14表示为1110任意两个数之间汉明距离的总和。
示例:
输入: 4, 14, 2
输出: 6
解释: 在二进制表示中4表示为010014表示为11102表示为0010。这样表示是为了体现后四位之间关系 所以答案为 HammingDistance(4, 14) HammingDistance(4, 2) HammingDistance(14, 2) 2 2 2 6.
解题思路
题目分析
例如示例中的4142的汉明距离
在二进制表示中
0100
1110
0010我们可以垂直的观察因为汉明距离指的是两个数字的二进制数对应位不同的数量所以我们发现其实元素的每一位都可以独立出来计算就是将int类型看成32个01表示的二进制数他们相互独立在计算汉明距离时我们只要将每个元素的第x位提取出来统计所有元素在该位的01的数量就可以得出在该位上有多少个不同的二进制数再把每一位的结果累加起来就是最终的汉明距离。
代码
class Solution {public int totalHammingDistance(int[] nums) {int res0;for(int i0;i31;i){int[] cnt new int[2];for (int j 0; j nums.length; j) {cnt[nums[j]1];nums[j]1;}rescnt[0]*cnt[1];}return res;}
}