lintcode 365. 二进制中有多少个1

难度:容易

1. Description

365. 二进制中有多少个1

2. Solution

  • python
class Solution:
    """
    @param: num: An integer
    @return: An integer
    """
    def countOnes(self, num):
        # write your code here
        if num<0:
            num = 2**31+num
            res = 1
        else:
            res = 0
        while num>0:
            if num%2!=0:
                res+=1
            num = num//2
        return res

更好的方法,使用位操作。

class Solution:
    """
    @param: num: An integer
    @return: An integer
    """
    def countOnes(self, num):
        # write your code here
        res = 0
        for i in range(32):
            res += num & 1
            num >>= 1
        return res

3. Reference

  1. https://www.lintcode.com/problem/count-1-in-binary/description
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目 描述 计算在一个 32 位的整数的二进制表式中有多少个 1. 样例 给定 32 (100000),返回 1给...
    悠扬前奏阅读 216评论 0 0
  • 公司一个很厉害的牛人突然离职了,于是很多人都在讨论他的去处,我听的最多的一种说法就是想他这么厉害的人,肯定出去自己...
    国玺同学阅读 282评论 0 0
  • 在我们苍白无力的人生岁月中,是书籍,那我们最少一抹绚丽的色彩。在人生的海洋中是书籍带我们避开一块块礁石。是书籍,...
    何乐楠阅读 317评论 0 0
  • 我今年十七,听我妈墨迹了十二年,从六岁上小学开始。 太遥远的记不清,只是感觉那个时候每天耳边都嗡嗡的,我妈总是有一...
    何北晞阅读 1,206评论 0 2