给定一个非负整数 n ,请计算 0 到 n 之间的每个数字的二进制表示中 1 的个数,并输出一个数组。
示例 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
class Solution:
def countBits(self, n: int) -> List[int]:
def counter(n):
count = 0
while n != 0:
n = n & (n-1)
count += 1
return count
return [counter(i) for i in range(n+1)]
剑指 Offer(专项突击版)- 剑指 Offer II 003. 前 n 个数字二进制中 1 的个数 (20220711)
最新推荐文章于 2024-07-27 17:56:15 发布