【Leetcode_总结】 338. 比特位计数 - python
Q:
给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。
示例 1:
输入: 2 输出: [0,1,1]
示例 2:
输入: 5
输出: [0,1,1,2,1,2]
思路:使用bin()函数 返回每一个值count(“1”),代码如下:
class Solution:
def countBits(self, num):
"""
:type num: int
:rtype: List[int]
"""
res = [bin(i).count('1') for i in range(num+1)]
return res
还有一种方法就是,利用规律:
0
01
10
11
100
111......
class Solution(object):
def countBits(self, num):
"""
:type num: int
:rtype: List[int]
"""
List1 = [0]
while(len(List1)<=num):
List2 = [i+1 for i in List1]
List1 = List1+List2
return List1[:num+1]