[LeetCode]461.Hamming Distance

来源:互联网 发布:北大青鸟crt软件下载 编辑:程序博客网 时间:2024/06/05 03:35

[LeetCode]461.Hamming Distance

题目描述

这里写图片描述

思路

按照题目要求,最简单的思路是求异或,然后数异或结果的二进制表示中1的个数
异或简单,具体是数1的过程
答案的方法是 n&(n - 1)
从右向左一次数1
比如:
xxxx10
减1后是
xxxx01
进行与操作之后是
xxxx00
最右面的1就消去了
循环计数直到n为0

代码

class Solution {public:    int hammingDistance(int x, int y) {        int i = 0, n = x ^ y;        while(n) {            ++i;            n &= n - 1;        }        return i;    }};
0 0
原创粉丝点击