0%

LeetCode-338

题目

结果

代码

1
2
3
4
5
6
7
8
9
10
11
12
func countBits(num int) []int {
bits := make([]int, num+1)
h := 0
for i := 1; i <= num; i++ {
if i&(i-1) == 0 {
h = i
}
bits[i] = 1 + bits[i-h]
}
return bits
}

复杂度

时间复杂度:O(n)

空间复杂度:O(1),除了结果所需