统计一个整数中二进制中1的个数
2015-09-06 17:28
302 查看
方法一:
时间复杂度O(M)M为整数中1的个数
空间复杂度O(1)
代码:
解释:
每一次n&(n-1)都能把最右边的1去除,因此时间复杂度与这个整数的1的个数有关
方法二:
可以右移来实现
时间复杂度O(M)M为整数中1的个数
空间复杂度O(1)
代码:
public static int countOne(int n){ int count=0; while(n!=0){ n=n&(n-1); count++; } return count; }
解释:
每一次n&(n-1)都能把最右边的1去除,因此时间复杂度与这个整数的1的个数有关
方法二:
可以右移来实现
相关文章推荐
- B树的插入和删除
- CCF 2015-03-4 网络延时
- ASP.NET MVC Authorization 自定义跳转
- Visual Studio 项目模板制作(一)
- c#进程间通信(Inter-Process Communication)
- Git 使用方法
- centos中更换jdk的版本
- 新浪微博笔试题
- 水晶报表crystal report 学习笔记1
- js实现带缓冲效果的仿QQ面板折叠菜单代码
- JAVA X项目得到WEB—INFO上级目录路径
- Android Studio启动后一直 Checking for updated SDK components
- ZOJ 2866 Overstaffed Company
- hdu 5429 Geometric Progression(高精度)
- Android——button控件使用
- 每日总结之Adapter的缓存机制
- 网络协议
- UVALive 3401 Colored Cubes
- 123
- 手机游戏中的社交互动与任务剧情