题目:
The Hamming distance between two integers is the number of positions at which the corresponding bits are different.
Given two integers x
and y
, calculate the Hamming distance.
Note:
0 ≤ x
, y
< 231.
Example:
Input: x = 1, y = 4 Output: 2 Explanation: 1 (0 0 0 1) 4 (0 1 0 0) ↑ ↑ The above arrows point to positions where the corresponding bits are different.
链接:https://leetcode.com/problems/hamming-distance/#/description
3/27/2017
1 public class Solution { 2 public int hammingDistance(int x, int y) { 3 int z = x ^ y; 4 int c = 1, count = 0; 5 while (z != 0) { 6 if ((z & c) != 0) count++; 7 z >>= 1; 8 } 9 return count; 10 } 11 }
其他人作法:
1. 使用自带函数
1 public class Solution { 2 public int hammingDistance(int x, int y) { 3 return Integer.bitCount(x ^ y); 4 } 5 }
更多讨论:https://discuss.leetcode.com/category/590/hamming-distance