338. 比特位计数
比特位计数
题目描述:
给你一个整数 n ,对于 0 <= i <= n 中的每个 i ,计算其二进制表示中 1 的个数 ,返回一个长度为 n + 1 的数组 ans 作为答案。
示例 1:
输入:n = 2
输出:[0,1,1]
解释:
0 –> 0
1 –> 1
2 –> 10
示例 2:
输入:n = 5
输出:[0,1,1,2,1,2]
解释:
0 –> 0
1 –> 1
2 –> 10
3 –> 11
4 –> 100
5 –> 101
思路:
代码:
func countBits(n int) []int {
var count int
var res []int
for i:=0;i<=n ;i++{
a := i
for a!= 0{
if a%2 == 1{
count ++
}
a /= 2
}
res = append(res, count)
count = 0
}
return res
}
代码效率:
执行用时:4 ms, 在所有 Go 提交中击败了86.24%的用户
内存消耗:6.1 MB, 在所有 Go 提交中击败了18.58%的用户
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!