首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >LeetCode 0338 - Counting Bits

LeetCode 0338 - Counting Bits

作者头像
Reck Zhang
发布2021-08-11 11:20:59
发布2021-08-11 11:20:59
1900
举报
文章被收录于专栏:Reck ZhangReck Zhang

Counting Bits

Desicription

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 1:

代码语言:javascript
复制
Input: 2
Output: [0,1,1]

Example 2:

代码语言:javascript
复制
Input: 5
Output: [0,1,1,2,1,2]

Follow up:

  • It is very easy to come up with a solution with run time O(n*sizeof(integer)). But can you do it in linear time O(n) /possibly in a single pass?
  • Space complexity should be O(n).
  • Can you do it like a boss? Do it without using any builtin function like __builtin_popcount in c++ or in any other language.

Solution

代码语言:javascript
复制
class Solution {
public:
    std::vector<int> countBits(int num) {
        auto res = std::vector<int>(num + 1);
        for(int i = 0; i <= num; i++) {
            res[i] = res[i >> 1] + (i & 1);
        }
        return res;
    }
};
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-06-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Counting Bits
    • Desicription
    • Solution
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档