338. Counting Bits
Given an integer
n, return an array ans of length n + 1 such that for each i (0 <= i <= n), ans[i] is the number of 1's in the binary representation of i.Example:
Input: n = 5 Output: [0,1,1,2,1,2]
0 --> 0
1 --> 1
2 --> 10
3 --> 11
4 --> 100
5 --> 101def countBits(n: int):
bitCounts = [0]*(n+1)
base = 1
nextPowerOfTwo = 1
while base <= n:
for i in range(nextPowerOfTwo):
if base + i > n:
break
bitCounts[base+i] = bitCounts[i] + 1
i += 1
base = base + nextPowerOfTwo
nextPowerOfTwo = nextPowerOfTwo << 1
return bitCounts
Comments
Post a Comment