Leetcode 477. Total Hamming Distance-java
来源:互联网 发布:php微信二次开发教程 编辑:程序博客网 时间:2024/06/01 10:00
1 解题思想
这道题是计算总汉明距离,题目难度为Medium。
汉明距离是信息论中的重要概念,将两个数字做异或操作,统计结果中1的个数即可得出两者的汉明距离。试了下循环比对时间复杂度O(n^2)的方法,不出意外超时了。
对于所有数字中的某一位,在两两比对时如果两者不同则其为总汉明距离贡献为1,如果相同则贡献为0。这样该位为0的数字和该位为1的数字可分为两个集合,它们互相之间都能为总汉明距离贡献1,而集合内部对总汉明距离没有贡献,因此将该位为0的个数和为1的个数相乘即可得出该位对总汉明距离的贡献。这样遍历整个int的32位即可求出总汉明距离
题目的意思就是给了一个数组,现在求总的海明距离,其中:
1、海明距离:任意两个数在二级制的表示下(int = 32bit),每个bit对应的值是1或0,那么这两个数在这32个位置下,取值不一样的地方的总和就是海明距离
2、总的距离:该数组中,所有两两组合得到的元素的海明距离的和
而方法也找到了一个很简单的:
int长度是32bit,一共n个数
在每个位置上,如果有k个数为1,那么就有n-k个为0
那么贡献的海明距离就贡献了 k*(n-k)
2 原题
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
3 AC解
0 0
- Leetcode 477. Total Hamming Distance-java
- [LeetCode]Total Hamming Distance(Java)
- LeetCode 477. Total Hamming Distance
- 【Leetcode】477. Total Hamming Distance
- LeetCode 477. Total Hamming Distance
- [leetcode] 477. Total Hamming Distance
- LeetCode 477. Total Hamming Distance
- LeetCode 477. Total Hamming Distance
- LeetCode 477. Total Hamming Distance
- Leetcode-477. Total Hamming Distance
- 【LeetCode】 477. Total Hamming Distance
- [leetcode]477. Total Hamming Distance
- LeetCode 477. Total Hamming Distance
- [LeetCode]477. Total Hamming Distance
- LeetCode 477. Total Hamming Distance
- Leetcode: 477. Total Hamming Distance
- leetcode 477. Total Hamming Distance
- leetcode 477. Total Hamming Distance
- C++:用CreateDirectory创建文件目录
- 蓝桥杯 入门训练 序列求和(3)
- android.os.NetworkOnMainThreadException异常处理
- SQL的IN参数化查询(字符列表转换成整型的处理方法)
- js图片延迟加载
- Leetcode 477. Total Hamming Distance-java
- Java-逃逸分析
- Linux下VFP NEON浮点编译
- 青出于红——《第一行代码(第2版)》
- 《C++ Primer Plus(第六版)》(27)(第十三章 类继承 编程题答案)
- logback使用详解
- SplashView的用法及源码解析
- 解决android Button 自带阴影的效果
- Android自定义View--用ViewGroup打造一个3D堆叠卡片容器