题解 | #二进制中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
            
全部评论

相关推荐

10-14 23:01
已编辑
中国地质大学(武汉) Java
CUG芝士圈:虽然是网上的项目,但最好还是包装一下,然后现在大部分公司都在忙校招,十月底、十一月初会好找一些。最后,boss才沟通100家,别焦虑,我去年暑假找第一段实习的时候沟通了500➕才有面试,校友加油
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务