338. Counting Bits

来源:互联网 发布:linux启动网卡命令 编辑:程序博客网 时间:2024/06/06 12:25
//140msclass Solution {public:    vector<int> countBits(int num) {        vector<int> v(1,0);        int r=1;        while(num!=0)        {            for(int i=0;i<r;i++)            {                v.push_back(v[i]+1);                if(--num==0) return v;            }            r*=2;        }        return v;    }};

测试数据才14组

//164msclass Solution {public:    vector<int> countBits(int num) {        static vector<int> v;        if(v.size()>=num+1) return vector<int>(v.begin(),v.begin()+num+1);        if(v.empty()) v.push_back(0);        while(v.size()<num+1)        {            int len=v.size();            for(int i=0;i<len;i++)            {                v.push_back(v[i]+1);            }        }        return vector<int>(v.begin(),v.begin()+num+1);    }};
0 0