LeetCode#461. Hamming Distance
2017-03-29 20:52
381 查看
求两个数的汉明距离(即两个整数转成二进制,对应位值不同的数量)
例如:1 4 汉明距离为2
1 (0 0 0 1)
4 (0 1 0 0)
难度:Easy
思路:当想x,y中至少有一个不为0,则对两个数进行取余比较,不相等则count加1,否则这两个数都除2(while循环)
代码:
利用位运算,效率更高
例如:1 4 汉明距离为2
1 (0 0 0 1)
4 (0 1 0 0)
难度:Easy
思路:当想x,y中至少有一个不为0,则对两个数进行取余比较,不相等则count加1,否则这两个数都除2(while循环)
代码:
public class Solution { public int hammingDistance(int x, int y) { int count = 0; while(y != 0 || x != 0){ int a = x%2; int b = y%2; if(a != b){ count++; } x = x/2; y = y/2; } return count; } }
利用位运算,效率更高
public class Solution { public int hammingDistance(int x, int y) { int xor = x ^ y, count = 0; for (int i=0;i<32;i++) count += (xor >> i) & 1; return count; } }
相关文章推荐
- LeetCode | 461. Hamming Distance 12_16
- 【LeetCode】(C#)461. Hamming Distance(Easy)
- leetcode 461. Hamming Distance(C语言)
- LeetCode | 461. Hamming Distance
- [LeetCode] 461. Hamming Distance 汉明距离
- leetcode----461. Hamming Distance
- LeetCode - 461. Hamming Distance
- 【leetcode】【Easy】【461. Hamming Distance】【bit manipulation】
- LeetCode之461. Hamming Distance
- 【LeetCode】461. Hamming Distance (java实现)
- 【Leetcode】461. Hamming Distance
- LeetCode 461. Hamming Distance
- Leetcode 461. Hamming Distance
- LeetCode 461. Hamming Distance(java)
- python--leetcode 461. Hamming Distance
- LeetCode-461. Hamming Distance
- [Leetcode从零开刷]461. Hamming Distance
- LeetCode 461. Hamming Distance
- Leetcode 461. Hamming Distance
- LeetCode之461. Hamming Distance