/**
* 算法思想:
* 动态规划,初始化0,1,2,后面奇数的为前面偶数+1;
* 偶数的和前一个偶数相同。
*/
int* countBits(int num, int* returnSize){
int *ret = (int *)malloc(sizeof(int) * (num+3));
int index = 0, i, j;
ret[0] = 0;
ret[1] = 1;
ret[2] = 1;
*returnSize = num+1;
if(num <= 2){
return ret;
}
for(i=3; i<=num; i++){
if(i&0x1) {
ret[i] = ret[i-1] + 1;
}else{
ret[i] = ret[i/2];
}
}
return ret;
}
leetcode-338-比特位计数-C语言
最新推荐文章于 2023-04-05 16:39:40 发布