二进制求1的个数
来源:互联网 发布:淘宝颜色分类怎么设置 编辑:程序博客网 时间:2024/05/03 18:29
第一种解法
int num=0;
int v=255;
while(v!=0)
{
num=num+(v&ox01);
v>>=1;
复杂度为O(logV)
}
//位操作
第二种解法
while(v!=0)
{
v=v&(v-1);
num++;
//复杂度降低到O(M)
}
第三种空间换时间
把你所要的数所有情况1的个数全部列出来,该数的下标就是1的个数,典型的空间置换时间,如果频繁使用时,这是一个不错的方法
正整数 a和b二进制有多少位是不同的
static int count(int v)
{
int num=0;
while(v!=0)
{
v=v&(v-1);
num++;
}
return num;
}
public static void main(String[] args) {
int v=2;
int s=1;
int c=v&s;//得到的结果C中的1的位表明了A和B中相同的位都是1的位;
int d=v|s;// 得到的结果D中的1的位表明了A和B在该位至少有一个为1的位,包含了A 与 B 都是1的位数,
int e=c^d;//E 中为1的位表明了A 和 B不同的位。
System.out.println(count(e));
}
总结
当某个函数被大量使用时,看看是否该函数有什么规律
通过增加其空间复杂度来获得更快的执行效率
0 0
- 二进制求1的个数
- 求整数的二进制1的个数
- 求二进制数中1的个数
- 求二进制数中的1的个数
- 求二进制数1的个数
- 求二进制数中的1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制中1的个数
- 求二进制数中1的个数
- 求二进制数中 1 的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- LoadRunner压力测试操作步骤
- DataList的使用+分页
- #define 宏 in Swift
- 思毕德咨询将于2014年10月13-17日举办SAP HCM ABAP编程技术培训课程
- linux访问windows的共享文件
- 二进制求1的个数
- mybatis 自定义SQL
- 微信转化率这么低 京东还在期望什么?
- 搭建Mac下的cocos2dx3.2环境
- 详解Google Authenticator工作原理
- HDU_ACM-2046 骨牌铺方格
- MFC——ComBox用法大全 .
- 模版 - KMP
- Eclipse 怎么设置代码提示