给定一个非负整数 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)来执行此操作。

/*** @param {number} num* @return {number[]}*/
var countBits = function(num) {};

个人解法

var countBits = function(num) {//定义函数用取余法将num转化为二进制数,并把各位放到数组内//比如 5 -> 101 -> [1,0,1]//5 % 2 = 1   Math.floor(5/2) = 2//2 % 2 = 0   Math.floor(2/2) = 1//1 % 2 = 1   Math.floor(1/2) = 0function quyufa(num){var arr = [];while(num !== 0){arr.push(num % 2);num = Math.floor(num / 2);}return arr;}//获取数组内的1的个数function get1Length(arr){var length = 0;for(var i = 0; i < arr.length; i++){if(arr[i] === 1){length ++;}}return length;}var result = [];for(var i = 0; i <= num; i++){result.push(get1Length(quyufa(i)));}return result;
};

(进阶)LeetCode(338)——比特位计数(JavaScript)相关推荐

  1. LeetCode 231. 2的幂 LeetCode 338. 比特位计数(2进制1的个数)

    文章目录 1. 题目信息 2. 解题 拓展:求一个数n的2进制有多少个1? LeetCode 338 1. 题目信息 给定一个整数,编写一个函数来判断它是否是 2 的幂次方. 示例 1:输入: 1 输 ...

  2. Leetcode 338.比特位计数

    Time: 20190904 Type: Medium 题目描述 给定一个非负整数 num.对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回. ...

  3. leetcode 338. 比特位计数

    给定一个非负整数 num.对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回. 示例 1: 输入: 2 输出: [0,1,1] 示例 2: 输入: ...

  4. leetcode 338 比特位计数

    如果一个数i%2=1,即为奇数,即二进制中的最低位为1.我们将这个过程循环直至i为0,每一次i%2=1我们将该数的'1'数加一. 上面的方法不能做到复杂度O(n)完成所有数的的遍历.我们换成动态规划. ...

  5. LeetCode 338. 比特位计数(动态规划)

    题目描述 给定一个非负整数 num.对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回. 示例 1: 输入: 2 输出: [0,1,1] 示例 2 ...

  6. 【LeetCode笔记】338. 比特位计数(Java、位运算、动态规划)

    文章目录 题目描述 思路 & 代码 无注释二刷 题目描述 难点在于 O(n) 思路 & 代码 理解题意,分析出 O(n) 复杂度应该是要用到之前的值来得到当前值--动态规划 核心结论: ...

  7. leetcode力扣338. 比特位计数

    给定一个非负整数 num.对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回. 示例 1: 输入: 2 输出: [0,1,1] 示例 2: 输入: ...

  8. 338 比特位计数(动态规划-递推)

    1. 问题描述: 给定一个非负整数 num.对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回. 示例 1: 输入: 2 输出: [0,1,1] ...

  9. 力扣 338. 比特位计数

    题目 给你一个整数 n ,对于 0 <= i <= n 中的每个 i ,计算其二进制表示中 1 的个数 ,返回一个长度为 n + 1 的数组 ans 作为答案. 示例 输入:n = 2 输 ...

  10. 338. 比特位计数 golang

    Me func countBits(num int) []int {result := make([]int, num+1)for i:=0; i<=num; i++ {result[i] = ...

最新文章

  1. fiddler抓取https请求
  2. 小明分享|sigmstar SSD201/SSD202 针对RGB的LCD屏配置操作说明分享
  3. [译]GC专家系列4-Apache的MaxClients设置及其对Tomcat Full GC的影响
  4. apache.camel_Apache Camel 3.1 –更多骆驼核心优化(第2部分)
  5. java中domain什么意思_java解析URL中domain、端口和协议的两种方法
  6. Python 中的 - 是什么意思
  7. utilities——C++常用仿函数
  8. 10.TreeSet、比较器
  9. 支持10秒自毁的新芯片
  10. Win10自带播放器怎么倍速播放视频
  11. 根据pix飞控log文件和photo文件夹建立pos文件,提取pos数据小程序
  12. noob_Noob的Three.js指南
  13. 第十七周博客作业西北师范大学|李晓婷
  14. 初学C语言——三位数倒序
  15. 算法题--字符串排列组合、n皇后、字符出现次数(C++)
  16. 沧小海读《图解TCP/IP》笔记——第四章 IP协议
  17. java 面试 自我介绍
  18. 云计算供应商在合同谈判时可能拒绝的三个事项以及要求
  19. 大数据让电商实现精准营销
  20. yandex浏览器_15分钟内制作自己的文本编辑器:Yandex的实践

热门文章

  1. solrcloud配置中文分词器ik
  2. 高级语言程序设计II 实验报告三c++使用文本文件和二进制文件的读写比较两者的区别和优劣...
  3. PHP的性能大坑--strtotime函数
  4. HP 360G5 IO性能提高方法
  5. ASP.NET AJAX入门系列(6):UpdateProgress控件简单介绍
  6. python对数字进行简单的可逆加密_Python实现简单的可逆加密程序实例
  7. json替换table下的所有值_京东云所有地域正式支持 MySQL 8.0!
  8. python 大小端转换,大小端 python
  9. python指定目录生成.csv文件_python文件处理-根据csv文件内容,将对应图像拷贝到指定文件夹...
  10. python中for循环的用法_@Python小白,一文让你掌握Python爬虫