338 Counting Bits
0,
1, <- base case
1,2,
1,2,2,3,
1,2,2,3,2,3,3,4,
1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,
1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,def __countBits(self, A000120, prev, num):
"""
:param num: int
:return: List[int]
"""
if len(A000120) >= num + 1:
return A000120
else:
A000120.extend(prev)
double = [i+1 for i in prev]
A000120.extend(double)
prev.extend(double)
return self.__countBits(A000120, prev, num)
def countBits(self, num):
"""
:type num: int
:rtype: List[int]
"""
if num == 0: return [0]
elif num == 1: return [0,1]
return self.__countBits([0,1], [1], num)[0:num+1]Last updated