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

二进制中1的个数

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

# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param n int整型 
# @return int整型
#
class Solution:
    def NumberOf1(self , n: int) -> int:
        if n >= 0:
            return self.number1(n)
        else:
            return 32-self.number1(-n-1)
    def number1(self,n):
        count = 0
        while n!= 0:
            if n%2 == 1:
                count += 1
            n = n // 2
        return count
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param n int整型 
# @return int整型
#
class Solution:
    def NumberOf1(self , n: int) -> int:
        flag = 1
        count = 0
        num = 32
        #判断n的32位的每一位是不是1
        while num > 0:
            if flag & n :
                count +=1
            flag = flag << 1
            num -= 1
        return count
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param n int整型 
# @return int整型
#
class Solution:
    def NumberOf1(self , n: int) -> int:
        count = 0
		#对负数转换成32位二进制,否则将不是32位的表示
        if n<0:
            n=n&0xffffffff
        while n:
            count += 1
            n = (n-1) & n
        return count
            
全部评论

相关推荐

11-09 01:22
已编辑
东南大学 Java
高级特工穿山甲:羡慕,我秋招有家企业在茶馆组织线下面试,约我过去“喝茶详谈”😢结果我去了发现原来是人家喝茶我看着
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务