您的位置:首页 > 编程语言 > Python开发

LeetCode--338. Counting Bits(计算比特数)Python

2018-01-02 18:35 417 查看
题目:

给定一个整数n,返回从0-n各个整数对应二进制数中1的个数。比如n=5,返回
[0,1,1,2,1,2]


解题思路:

考虑二进制数的规律。[000,001,010,011,100,101,110,111],分别对应[0,1,2,3,4,5,6,7]。从上述二进制数可以看出来,4-7的二进制数既是对0-3的二进制数的最高位从0变成1,也就是说后面的二进制数都是在之前所有二进制的最高位加一位1。

代码(Python):

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]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: