20210303 338. 比特位计数

题目

https://leetcode-cn.com/problems/counting-bits/

题解

递归,如果是偶数f(n) = f(n/2), 如果是奇数f(n) = f(n-1)+1

public int[] countBits(int num) {
int[] result = new int[num + 1];
// 如果是偶数f(n) = f(n/2)
// 如果是奇数f(n) = f(n-1)+1
result[0] = 0;
for (int i = 1; i <= num; i++) {
if (i % 2 == 1) {
result[i] = result[i - 1] + 1;
} else {
result[i] = result[i / 2];
}
}
return result;
}

发表评论

邮箱地址不会被公开。 必填项已用*标注