美文网首页
2022-01-02 II 003. 前 n 个数字二进制中

2022-01-02 II 003. 前 n 个数字二进制中

作者: 16孙一凡通工 | 来源:发表于2022-01-02 09:11 被阅读0次

    如果正整数 i 是一个偶数,那么 i 相当于将 i/2 左移一位的结果,因此偶数 i 和 i/2 的二进制形式 1 的个数是一样的 如果 i 是奇数,那么 i 相当于将 i/2 左移一位之后再将最右边的位设为 1 的结果,因此奇数 i 比 i/2 的二进制形式 1 的个数多 1 个 可以利用这个规律有如下代码
    Go版本:

    func countBits(n int) []int {
    
        var res []int;
    
        for i:=0;i<=n;i++{
            res=append(res,0);
        }
         for i:=0;i<=n;i++{
            res[i]=res[i>>1]+(i&1);
         
        }
        return res;
    }
    

    相关文章

      网友评论

          本文标题:2022-01-02 II 003. 前 n 个数字二进制中

          本文链接:https://www.haomeiwen.com/subject/xllzqrtx.html