这道题运用迭代的思想,开始自己写的以8个数作为迭代的基础,后来发现以两个数作为迭代的基础就可以,代码如下
public class CountingBits {
public int[] countBits(int num) {
int[] result = new int[num + 1];
if(num == 0){
return result;
}
result[0] = 0;
result[1] = 1;
for(int i = 2;i <= num;i ++){
result[i] = result[i / 2] + result[i % 2];
}
return result;
}
}