非負整数NUMを考えます。0≤I≤I、二進数字1と配列として返すそれらの数を算出し、各デジタルNUM範囲のため。
実施例1:
入力:2
出力:[0,1,1]
例2:
入力:5
出力:[0,1,1,2,1,2]
解決方法1:ライブラリ関数を使用します
class Solution {
public int[] countBits(int num) {
int[] arr = new int[num + 1];
for(int i = 0; i <= num; i++){
arr[i] = Integer.bitCount(i);
}
return arr;
}
}
対処方法2:
class Solution {
public int[] countBits(int num) {
int[] arr = new int[num + 1];
for(int i = 1; i <= num; i++){
arr[i] = arr[(i & i- 1)] + 1;
}
return arr;
}
}