标签:int pre 就是 方法 循环 TE 时间复杂度 count get
原题网址:https://www.lintcode.com/problem/count-1-in-binary/description
计算在一个 32 位的整数的二进制表示中有多少个 1
.
给定 32
(100000),返回 1
给定 5
(101),返回 2
给定 1023
(1111111111),返回 10
If the integer is n bits with m 1 bits. Can you do it in O(m) time?
class Solution {
public:
/*
* @param num: An integer
* @return: An integer
*/
int countOnes(int num) {
// write your code here
int result=0;
for (int i=0;i<32;i++)
{
if ((num>>i)&1)
{
result++;
}
}
return result;
}
};
int countOnes(int num)
{
int result=0;
while(num)
{
num=num&(num-1);//清除num最右边的1;
result++;
}
return result;
}
标签:int pre 就是 方法 循环 TE 时间复杂度 count get
原文地址:https://www.cnblogs.com/Tang-tangt/p/9195149.html