二进制中有多少个1
自己写的代码
85%数据通过
输入是负数的时候不满足;
class Solution {
public:
/**
* @param s a string
* @return it's index
*/
int firstUniqChar(string& s) {
// Write your code here
if (s.size == 0)
return -1;
int m = s.length;
vector<int> v(256, 0);
for (int j = 0; j < m ; ++j)
++v[s[i]];
for (int j = 0; j < m;)
if (v[s[i]] == 1)
return i;
return -1;
}
};
一个牛人写的算法
class Solution {
public:
/**
* @param num: an integer
* @return: an integer, the number of ones in num
*/
int countOnes(int num) {
// write your code here
int count = 0;
while (num) {
count++;
num &= (num-1);//&表示二进制相与
}
return count;
}
};