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.
Example:
Input: x = 1, y = 4Output: 2Explanation:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑The above arrows point to positions where the corresponding bits are different.class Solution {public: int hammingDistance(int x, int y) { int cnt = 0; while(x || y){ if((x & 1) != (y & 1)) ++cnt; x >>= 1; y >>= 1; } return cnt; }};先异或,再转换成有多少个1
class Solution {public: int hammingDistance(int x, int y) { int dist = 0, n = x ^ y; while (n) { ++dist; n &= n - 1; } return dist; }};新闻热点
疑难解答