题解 | #二进制中1的个数#

二进制中1的个数

https://www.nowcoder.com/practice/8ee967e43c2c4ec193b040ea7fbb10b8

法二有意思。

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param n int整型 
# @return int整型
#
class Solution:
    def NumberOf1(self , n: int) -> int:
        # write code here
        cnt = 0
        # 法一:遍历每一位
        # for i in range(32):
        #     cnt += (n >> i) & 1
        # 法二:位运算公式,每次把n二进制的最右边一个数字1变成0
        # python中的数字没有大小限制,在循环中减 1 后 n 依然为复数
        if n < 0:
            n &= 0xffffffff
        while n:
            cnt += 1
            n &= n - 1
        return cnt
全部评论

相关推荐

准备进厂的共享单车:你最好现在就开始投吧 投一些中厂左右的公司 因为快寒假实习了 普遍比较好找一点 年后尤其快暑假的前一两个月竞争最激烈,现在投慢慢练面试经验 如果没过就慢慢沉淀 过了也看自身情况直接去实习呗 (有offer也可以不去啊) 有机会的话最好还是直接把握了,一定要等到年后实习吗 找个好实习寒假过年那几天又不是不能回家过年 难道你寒假有其他打算吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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