给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。
示例 1:
输入: 2
输出: [0,1,1]
示例 2:
输入: 5
输出: [0,1,1,2,1,2]
class Solution {
public int[] countBits(int num) {
int[] returnArr = new int[num+1];
for(int i = 0; i <= num; i++)
{
returnArr[i] = countNum(i);
}
return returnArr;
}
public int countNum(int num)
{
int returnNum = 0, r = 0;
while(num >= 2)
{
r = num % 2;
if(r == 1)
{
returnNum++;
}
num = num / 2;
}
if(num == 1)
{
returnNum += 1;
}
return returnNum;
}
}