剑指offer 之 二进制中1的个数
来源:互联网 发布:弹性光网络 编辑:程序博客网 时间:2024/06/07 15:48
# -*- coding:utf-8 -*-'''面试10:二进制中1的个数思路1: 将1循环左移分别与n进行按位与运算,可得n每一位的1的个数 运算次数: 为n二进制下的位数思路2: 将n减1,再与n进行与预算,这样会把该整数最右边的一个1变0,也就是消去了一个1 这样的话,有多少个1就进行多少次操作,自然也就得出二进制下1的个数了。 运算次数即为: 为1的个数'''class Solution: # 需要循环len(bin(n))次 def NumberOf1(self, n): # write code here count = 0 flag = 1 nLength = len(bin(n)) for i in range(nLength): if n & flag: count += 1 flag = flag << 1 return count def NumberOf2(self, n): count = 0 while n: count += 1 n = n&(n-1) return countif __name__ == '__main__': a = Solution() print a.NumberOf1(15) print a.NumberOf2(15)
阅读全文
0 0
- 剑指Offer之二进制中1的个数
- 剑指Offer之 - 二进制中1的个数
- 剑指offer系列之十:二进制中1的个数
- 【剑指offer】之二进制中1的个数
- 剑指offer系列之9:二进制中1的个数
- 剑指offer(七)之二进制中1的个数
- 二进制中1的个数[剑指offer]之python实现
- 剑指offer之二进制中1的个数
- 【剑指offer之二进制中1的个数】
- 剑指offer 之 二进制中1的个数
- 剑指offer之二进制中1的个数
- 剑指offer之二进制中1的个数
- 剑指offer之十---二进制中1的个数
- 剑指offer:二进制中1的个数
- 剑指offer:二进制中1的个数
- 【剑指offer】二进制中1的个数
- [剑指Offer]二进制中1的个数
- 【剑指offer】二进制中1的个数
- 2-SAT
- map的四种遍历
- PHP SOCKET编程 学学
- 弹性布局-flex
- 动态规划:单调递增子序列
- 剑指offer 之 二进制中1的个数
- 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)
- [thinkPHP5项目实战_04]命名空间的引入
- Linux下升级gcc、gdb工具
- HeadFirst设计模式之继承与组合
- python入门(六):列表,元组的使用
- 深入理解Java虚拟机(4)-.Class文件格式(三)
- js控制用户一个小时之内没有任何操作自动退出
- eclipse常用快捷键