Counting Bits 题解

来源:互联网 发布:python flask下载 编辑:程序博客网 时间:2024/05/17 12:03


Counting Bits 题解


题目描述:

Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the number of 1's in their binary representation and return them as an array.


链接:点击打开链接


题解:

这道题的核心是需要计算一个数二进制下的 “1” 的个数,通过观察“1,10,11,100,101,110,111·····”,我们可以发现第 i 位就是第  i/2 位加上 i%2 的值

ans[i]=ans[i/2]+(i%2);

这行代码实现了这一过程,算法中采用迭代,时间复杂度为O(n)。

代码:

class Solution {public:    vector<int> countBits(int num) {        vector<int> ans(num+1);        ans[0]=0;        for(int i=1; i<=num; i++){ans[i]=ans[i/2]+(i%2);                   }        return ans;    }};





0 0
原创粉丝点击