分享最简单的解题方法

二进制中1的个数

http://www.nowcoder.com/questionTerminal/8ee967e43c2c4ec193b040ea7fbb10b8

public class Solution {
    public int NumberOf1(int n) {
        int count = 0;
        while(n != 0){
            count += (n & 1); //每次判断最低位是否为1
            n >>>= 1;
        }
        return count;
    }
}
全部评论
负数没考虑吧
点赞 回复 分享
发布于 2021-07-12 14:13
n >>= 1不行是因为负数会在高位补1吗?
点赞 回复 分享
发布于 2019-09-19 23:25
复杂度太高了
点赞 回复 分享
发布于 2019-08-29 15:37

相关推荐

野猪不是猪🐗:还是太卑微了,什么叫放弃本次面试应该说经过评估,贵公司与自己不匹配,决定不再推进后续流程
点赞 评论 收藏
分享
牛客41406533...:回答他在课上学,一辈子待在学校的老教授用三十年前的祖传PPT一字一句的讲解,使用谭浩强红皮书作为教材在devc++里面敲出a+++++a的瞬间爆出114514个编译错误来学这样才显得专业
点赞 评论 收藏
分享
评论
16
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务