博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
477. Total Hamming Distance
阅读量:5095 次
发布时间:2019-06-13

本文共 1181 字,大约阅读时间需要 3 分钟。

The  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, 2Output: 6Explanation: In binary representation, the 4 is 0100, 14 is 1110, and 2 is 0010 (justshowing 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:

  1. Elements of the given array are in the range of to 10^9
  2. Length of the array will not exceed 10^4.

含义:数组中任意两个数字求汉明距离,求所有组合的汉明距离

1     public int totalHammingDistance(int[] nums) { 2 //        仔细观察累计汉明距离和0跟1的个数,我们可以发现其实就是0的个数乘以1的个数,发现了这个重要的规律, 3 //        那么整道题就迎刃而解了,只要统计出每一位的1的个数即可 4         if (nums.length < 2) return 0; 5         int result = 0; 6         for (int i = 0; i < 32; i++) { 7             int bitCount = 0; 8             for (int number : nums) { 9                 if ((number & (1 << i)) > 0) bitCount++;10             }11             result += bitCount * (nums.length - bitCount); //1的个数乘以0的个数12         }13         return result;  14     }

 

转载于:https://www.cnblogs.com/wzj4858/p/7728186.html

你可能感兴趣的文章
数据结构
查看>>
Linux内核分析07
查看>>
this week,last week,this month,last month
查看>>
输入输出相关命令
查看>>
UNIX网络编程读书笔记:基本TCP套接口编程
查看>>
web.xml 配置中classpath: 与classpath*:的区别
查看>>
kettle-映射控件
查看>>
kettle-Excel输出
查看>>
Java泛型底层源码解析-ArrayList,LinkedList,HashSet和HashMap
查看>>
PNG格式图片(验证码..)不能显示的解决办法
查看>>
[Selenium+Java] Apache ANT with Selenium: Complete Tutorial
查看>>
源码安装mysql数据库
查看>>
UVA11059 - Maximum Product
查看>>
vue-cli webpack 多页面应用配置
查看>>
解读测试架构师
查看>>
10.1 考试 ..........
查看>>
VMware 12 专业版永久许可证密钥
查看>>
PHP 之 MySQL 操作(1)
查看>>
设计模式之装饰者模式-以牛肉面为例
查看>>
ffmpeg mediacodec 硬解初探
查看>>