-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathHammingDistance.java
More file actions
32 lines (29 loc) · 951 Bytes
/
HammingDistance.java
File metadata and controls
32 lines (29 loc) · 951 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package leetcode;
/**
* HammingDistance
* https://leetcode-cn.com/problems/hamming-distance/
* 461. 汉明距离
* https://leetcode-cn.com/problems/hamming-distance/solution/yi-ming-ju-chi-by-leetcode-solution-u1w7/
* 可以学习下神奇的算法: Brian Kernighan 算法
*
* @since 2021-05-27
*/
public class HammingDistance {
public static void main(String[] args) {
HammingDistance sol = new HammingDistance();
System.out.println(sol.hammingDistance(1, 4));
System.out.println(sol.hammingDistance(1, 1));
System.out.println(sol.hammingDistance(1, 2));
System.out.println(sol.hammingDistance(1, 3));
System.out.println(sol.hammingDistance(1, -3));
}
public int hammingDistance(int x, int y) {
int res = x ^ y;
int size = 0;
for (int i = 0; i < 32; i++) {
size += (res & 1);
res = res >> 1;
}
return size;
}
}