NO.1_461. Hamming Distance

来源:互联网 发布:第一次在淘宝购物流程 编辑:程序博客网 时间:2024/06/07 05:04

461. Hamming Distance

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 ≤ xy < 231.

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.

//解1

class Solution {public:    int hammingDistance(int x, int y)     {        int p=x^y;        int a=0;       while(p)//找出所有的1        {            a=a+(p&1);            p=p>>1;        }        return a;    }};
//参考解
class Solution {public:    int hammingDistance(int x, int y) {        int dist = 0, n = x ^ y;        while (n) {            ++dist;            n &= n - 1;//有多少个1,循环执行多少次        }        return dist;    }};


0 0
原创粉丝点击