校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 算法 > 智力分析题
题目

如何快速找出一个32位整数的二进制表达里有多少个"1"?用关于"1"的个数的线性时间?

解答

答案1(关于数字位数线性):

for(n=0; b; b >>= 1) if (b & 1) n++;

答案2(关于"1"的个数线性):

for(n=0; b; n++) b &= b-1;
C 1条回复 评论
摔伤脚踝的流星

千万别删等我进了阿里再删

发表于 2022-11-27 22:00:00
0 0