博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode191 Number of 1 Bit
阅读量:6831 次
发布时间:2019-06-26

本文共 444 字,大约阅读时间需要 1 分钟。

题意:一个int类型正整数,求它的二进制形式有多少个1

思路:除2递归,可以解出,看了discuss里面有个解更牛,一行结束战斗,是用n&(n-1)再递归,其实并不是很懂怎么想出来这么做的,可能是自己对二进制的处理根本不怎么了解吧,但是这样做结果是对的

代码:

int hammingWeight(uint32_t n) {    if(n == 0)        return 0;    if(n % 2 == 1)        return 1 + hammingWeight(n/2);    else         return hammingWeight(n/2);}

大神代码是这样的:

int hammingWeight(uint32_t n) {    return n == 0 ? 0 : 1 + hammingWeight(n & (n - 1));}

 

转载于:https://www.cnblogs.com/puyangsky/p/4641547.html

你可能感兴趣的文章