461 Hammi 4000 ng Distance
2017-02-25 15:13
113 查看
一、题目简述
汉明距离为两个整数之间不同比特数的位数。给定两个整数x,y,计算汉明距。0≤x,y≤231
二、编程思路
比较不同两个整数x,y比特数不同的位数,一种思路可以对其依次右移,比较其最低位是否相同,使用累加器计算相同的位数。也可以先将x,y进行异或得到z,则z二进制串中1的个数即是所求汉明距。从而将问题转化为求二进制数中1的个数。
三、代码实现
使用第二种方法,实现如下:class Solution { public: int hammingDistance(int x, int y) { int tmp, dis = 0; tmp = x^y; while (tmp > 0){ if (tmp & 1 == 1) dis++; tmp >>= 1; } return dis; } };
四、心得体会
使用位操作可以提高程序速率。相关文章推荐
- NYOJ 461
- 微软认证考试70-461 Work with Data 数据处理 --27%比重--(5.3)
- NYOJ461---&&HDU1568-----Fibonacci数列(四)
- nyoj461 Fibonacci数列(4)解通项公式
- websphere8.5部署应用:不支持 userid 为空。 ERRORCODE=-4461, SQLSTATE=42815 DSRA0010E: SQL 状态:42815,错误码:-4,461
- CF - 461B 树形dp
- leetcode 461: Hamming Distance
- python leetcode461 汉明距离
- LeetCode_461-hamming distance
- Leetcode 461 Hamming Distance 自制答案
- LeetCode 461: Hamming Distance
- LeetCode[461]Hamming Distance
- Codeforces Round #461 (Div. 2)
- 微软认证考试70-461-Create Database Objects(创建数据库对象)-24%比重
- 微软认证考试70-461 Work with Data 数据处理 --27%比重--(5.4)
- Appleman and Toastman - CodeForces 461 A 水题
- nyoj461 Fiboncci数列(4)解通项公式
- nefu fibs的位数 461 (矩阵)
- leetcode 461 Hamming Distance C++
- [leetcode][461]461. Hamming Distance