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 协议 ,转载请注明出处!