120. 连续自然数二进制中 1 的个数

leetcode 338 lintcode 664 动态规划 位操作

温馨提示:您没有权限查看当前视频。 立即购买观看视频

描述

这个题目说的是,给你一个非负整数 n,你要分别计算出 0 ~ n 这 n + 1 个整数的二进制表示中 1 的个数,将结果以数组的形式返回。

比如说,给你的整数 n 等于 4:

n = 4

你要分别计算出 0/1/2/3/4 这 5 个数的二进制表示中 1 的个数。我们先把这 5 个数的二进制表示写出来:

0: 0
1: 1
2: 10
3: 11
4: 100

于是可以得到这 5 个数二进制表示中 1 的个数分别是 0/1/1/2/1,返回这个数组即可:

[0, 1, 1, 2, 1]

关于 AlgoCasts

AlgoCasts 旨在用心做好每一个算法讲解视频。每个视频包含两个部分:题目的剖析讲解以及编码,力求在讲解清楚到位的基础上,尽可能地保持视频精简短小,让大家可以在碎片时间里进行学习,并收获这些算法题背后的思想与乐趣。