剑指offer--(13)二进制中1的个数
来源:互联网 发布:天刀薛无泪捏脸数据 编辑:程序博客网 时间:2024/06/04 09:18
剑指offer–(13)二进制中1的个数
问题描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
思路描述
利用”与”操作,不断清除n的二进制表示中最右边的1,同时累加计数器,直至n为0,这种方法速度比较快,其运算次数与输入n的大小无关,只与n中1的个数有关。如果n的二进制表示中有M个1,那么这个方法只需要循环k次即可,所以其时间复杂度O(M),eg: 111&110 =110 消除了111最右边的1。
代码实现:
public class Solution { public int NumberOf1(int n) { int num=0; while(n!=0){ n=n&(n-1);//消除最右边的1 num++; } return num; }}
阅读全文
0 0
- 剑指offer--(13)二进制中1的个数
- 剑指offer:二进制中1的个数
- 剑指offer:二进制中1的个数
- 【剑指offer】二进制中1的个数
- [剑指Offer]二进制中1的个数
- 【剑指offer】二进制中1的个数
- 剑指offer--二进制中1的个数
- 剑指offer:二进制中1的个数
- 剑指offer 二进制中1的个数
- 剑指offer 二进制中1的个数
- 《剑指offer》二进制中1的个数
- 剑指 offer:二进制中1的个数
- 剑指offer-二进制中1的个数
- 剑指offer 二进制中1的个数
- 剑指offer-二进制中1的个数
- 剑指offer 二进制中1的个数
- [剑指offer]二进制中1的个数
- 《剑指offer》-二进制中1的个数
- 三种交换网络:电路交换 报文交换 分组交换
- 日期类的实现
- 剑指offer--(12) 矩形覆盖
- C语言小问题--函数定义理解
- 欢迎使用CSDN-markdown编辑器
- 剑指offer--(13)二进制中1的个数
- 【数据结构】顺序表、单链表的 比较+总结
- tomcat8 源码 之单例模式
- 很好的一道面试题
- 关于元素和要素的问题
- 读书笔记∣《世界是数字的》知识点整理
- CSAPP AttackLab
- HDU
- 回归分析之理论篇