
此贴用来记录牛客网刷题算法记录,其中以技巧性的选择填空题为主,涉及到的算法程序题会另开一贴!
计算二进制中1的个数
方案一:
while (n >0 ) {
count ++;
n = n & (n-1);
}
方案二:
int (unsigned int n)
{
n = (n &0x55555555) + ((n >>1) &0x55555555) ;
n = (n &0x33333333) + ((n >>2) &0x33333333) ;
n = (n &0x0f0f0f0f) + ((n >>4) &0x0f0f0f0f) ;
n = (n &0x00ff00ff) + ((n >>8) &0x00ff00ff) ;
n = (n &0x0000ffff) + ((n >>16) &0x0000ffff) ;
return n ;
}
To be continued…




近期评论