leetcode338.比特拉计数
leetcode338.比特拉计数
题目
给你一个整数 n ,对于 0 <= i <= n 中的每个 i ,计算其二进制表示中 1 的个数 ,返回一个长度为 n + 1 的数组 ans 作为答案。
用例
输入:n = 2
输出:[0,1,1]
解释:
0 --> 0
1 --> 1
2 --> 10
输入:n = 5
输出:[0,1,1,2,1,2]
解释:
0 --> 0
1 --> 1
2 --> 10
3 --> 11
4 --> 100
5 --> 101
求解
/**
* @param {number} n
* @return {number[]}
*/
var countBits = function(n) {
let res =[]
let top=1
let start=0
for(i=0;i<=n;i++){
if(i==0){
res.push(0)
}else if(i==1){
res.push(1)
}else(
res.push(res[start]+1)
)
start++
if(start>top){
top=i
start=0
}
}
return res
};

浙公网安备 33010602011771号