美文网首页
剑指Offer-- 1的个数

剑指Offer-- 1的个数

作者: lazydecoder | 来源:发表于2019-04-06 16:33 被阅读0次

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
整数 i 与这个整数减 1 的值 i - 1,按位求与,如此可以将整数的二进制表示中最低位的 1变成0 。
二进制中有几个1,便需要操作几次。

# -*- coding:utf-8 -*-
class Solution:
    def NumberOf1(self, n):
        # write code here
        # Python 中,整数是没有范围限制的,不会溢出(overflow),需要人工限定范围。
        INT_BITS = 32
        MAX_INT = (1 << (INT_BITS - 1)) - 1
        count = 0
        while n:
            if n < - MAX_INT- 1 or n > MAX_INT:
                break
            n = n & (n - 1)
            count += 1
        return count

相关文章

  • 剑指Offer-- 1的个数

    输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。整数 i 与这个整数减 1 的值 i - 1,按位...

  • 剑指offer--最小的K个数

    输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3...

  • 剑指Offer--(4)从尾到头打印链表

    title: 剑指Offer--(4)从尾到头打印链表 categories: 算法与数据结构 tags: 数据结...

  • 剑指Offer--(3)查找空格

    title: 剑指Offer--(3)查找空格categories: 算法与数据结构tags: 数据结构 题目 请...

  • 剑指offer--位运算(1)

    参考:https://www.cnblogs.com/qmillet/p/12021623.html输入一个整数n...

  • 剑指Offer--(6)用两个栈实现队列

    title: 剑指Offer--(6)用两个栈实现队列 categories: 算法与数据结构 tags: 数据结...

  • 剑指offer--递归

    题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<...

  • 剑指offer--树

    参考:https://www.cnblogs.com/qmillet/p/12000557.html 题一:【重建...

  • 剑指offer--链表

    参考:https://www.cnblogs.com/qmillet/p/11951940.html附1:Stac...

  • 剑指offer--数组

    1.数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,...

网友评论

      本文标题:剑指Offer-- 1的个数

      本文链接:https://www.haomeiwen.com/subject/uiuriqtx.html