美文网首页
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