当前位置: 首页 > news >正文

leetcode 338. 比特位计数(Counting Bits)

目录

  • 题目描述:
  • 示例 1:
  • 示例 2:
  • 解法:

题目描述:

给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。

示例 1:

输入: 2
输出: [0,1,1]

示例 2:

输入: 5
输出: [0,1,1,2,1,2]

进阶:

  • 给出时间复杂度为O(n*sizeof(integer))的解答非常容易。但你可以在线性时间O(n)内用一趟扫描做到吗?
  • 要求算法的空间复杂度为O(n)。
  • 你能进一步完善解法吗?要求在C++或任何其他语言中不使用任何内置函数(如 C++ 中的 __builtin_popcount)来执行此操作。

解法:

class Solution {
public:
    vector<int> countBits(int num) {
        // 000 001 010 011 100 101 110 111
        vector<int> res(1, 0);
        long long sz = 1;
        while(true){
            if(sz*2 <= num){
                for(int i = 0; i < sz; i++){
                    res.push_back(1 + res[i]);
                }
                sz <<= 1;
            }else{
                for(int i = sz; i <= num; i++){
                    res.push_back(1 + res[i-sz]);
                }
                break;
            }
        }
        return res;
    }
};

转载于:https://www.cnblogs.com/zhanzq/p/10795709.html

相关文章:

  • 2019-04-30vmware虚拟机安装macos 10.8格式为iso
  • 【Python爬虫】听说你又闹书荒了?豆瓣读书9.0分书籍陪你过五一
  • Player Settings-Web
  • c++11多线程笔记
  • 微软UWP应用,导航栏设计。
  • Python 之继承
  • 写给我即将出生小孩的第一封信
  • Centos6.5安装Redis3.2.8
  • SSH connect issue 'exec request failed on channel 0'
  • SQL0668N Operation not allowed for reason code 3 on table TEST. SQLSTATE=57016
  • 作用域插槽slot
  • nodejs模块
  • 智能制造主战场在哪?数字化车间建设尤为重要
  • 快速排序(java实现)
  • 十天冲刺(6)
  • @angular/forms 源码解析之双向绑定
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • C++类的相互关联
  • Hexo+码云+git快速搭建免费的静态Blog
  • Magento 1.x 中文订单打印乱码
  • node入门
  • SQLServer插入数据
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • Web Storage相关
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • HanLP分词命名实体提取详解
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​第20课 在Android Native开发中加入新的C++类
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #if和#ifdef区别
  • #Spring-boot高级
  • #stm32整理(一)flash读写
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • #图像处理
  • (arch)linux 转换文件编码格式
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (四)图像的%2线性拉伸
  • (一)Java算法:二分查找
  • (转载)Google Chrome调试JS
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .net Signalr 使用笔记
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .NET简谈设计模式之(单件模式)
  • .NET学习全景图