338. 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.

Example: For num = 5 you should return [0,1,1,2,1,2].

Idea: Find the pattern in this sequence

class Solution {
public:
    vector<int> countBits(int num) {
        vector<int> r = vector<int>();
        r.reserve(num+1);
        r.push_back(0); // non negative int
        if(num == 0) return r;
        r.push_back(1); 
        if(num == 1) return r;
        
        for(int p1=1,p2=2;r.size() <= num;p1*=2,p2*=2){
            for(int j=p1;j<p2 && r.size() <= num;j++) r.push_back(r[j]);
            for(int j=p1;j<p2 && r.size() <= num;j++) r.push_back(r[j] + 1);
        }
        return r;
    }
};
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經驗。 張土汪:刷leetcod...
    土汪閱讀 12,768評論 0 33
  • 我一直覺得對明星的喜愛沒什么不好,前提不盲目、辨是非。 沒有什么特別喜歡的女明星,也沒有特別討厭的,可能因為是同性...
    只一點閱讀 283評論 0 0
  • 一、產品簡介 TunesGo for Mac是 Wondershare面向海外發(fā)布的一款蘋果手機設備付費管理軟件。...
    渡邊不純閱讀 742評論 0 1
  • 上了彭小六的知識管理訓練營,知道了快速閱讀這一利器。1個小時讀完一本書,多爽啊。 適用邊界 首先,速讀的書適用于實...
    懶蟲子的美麗人生閱讀 377評論 3 3
  • 看到一篇關于自律的文章,深深的震撼了,厲害的人從來都是自律的,沒有任何借口和理由去編織謊言 說到為什么要自律? 1...
    易槿槿閱讀 275評論 0 0