class Solution {
public int[] countBits(int n) {
int[] nums = new int[n + 1];
for(int i = 0; i <= n; i++){
nums[i] = onebit(i);
}
return nums;
}
public int onebit(int num){
int count = 0;
while(num > 0){
num &= num - 1;
count++;
}
return count;
}
}
一比特数算法:可以用于清除二进制数中最右侧的1。
思想:清除几次,就有几个1.