(进阶)LeetCode(338)——比特位计数(JavaScript)
给定一个非负整数 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)相关推荐
- LeetCode 231. 2的幂 LeetCode 338. 比特位计数(2进制1的个数)
文章目录 1. 题目信息 2. 解题 拓展:求一个数n的2进制有多少个1? LeetCode 338 1. 题目信息 给定一个整数,编写一个函数来判断它是否是 2 的幂次方. 示例 1:输入: 1 输 ...
- Leetcode 338.比特位计数
Time: 20190904 Type: Medium 题目描述 给定一个非负整数 num.对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回. ...
- leetcode 338. 比特位计数
给定一个非负整数 num.对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回. 示例 1: 输入: 2 输出: [0,1,1] 示例 2: 输入: ...
- leetcode 338 比特位计数
如果一个数i%2=1,即为奇数,即二进制中的最低位为1.我们将这个过程循环直至i为0,每一次i%2=1我们将该数的'1'数加一. 上面的方法不能做到复杂度O(n)完成所有数的的遍历.我们换成动态规划. ...
- LeetCode 338. 比特位计数(动态规划)
题目描述 给定一个非负整数 num.对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回. 示例 1: 输入: 2 输出: [0,1,1] 示例 2 ...
- 【LeetCode笔记】338. 比特位计数(Java、位运算、动态规划)
文章目录 题目描述 思路 & 代码 无注释二刷 题目描述 难点在于 O(n) 思路 & 代码 理解题意,分析出 O(n) 复杂度应该是要用到之前的值来得到当前值--动态规划 核心结论: ...
- leetcode力扣338. 比特位计数
给定一个非负整数 num.对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回. 示例 1: 输入: 2 输出: [0,1,1] 示例 2: 输入: ...
- 338 比特位计数(动态规划-递推)
1. 问题描述: 给定一个非负整数 num.对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回. 示例 1: 输入: 2 输出: [0,1,1] ...
- 力扣 338. 比特位计数
题目 给你一个整数 n ,对于 0 <= i <= n 中的每个 i ,计算其二进制表示中 1 的个数 ,返回一个长度为 n + 1 的数组 ans 作为答案. 示例 输入:n = 2 输 ...
- 338. 比特位计数 golang
Me func countBits(num int) []int {result := make([]int, num+1)for i:=0; i<=num; i++ {result[i] = ...
最新文章
- fiddler抓取https请求
- 小明分享|sigmstar SSD201/SSD202 针对RGB的LCD屏配置操作说明分享
- [译]GC专家系列4-Apache的MaxClients设置及其对Tomcat Full GC的影响
- apache.camel_Apache Camel 3.1 –更多骆驼核心优化(第2部分)
- java中domain什么意思_java解析URL中domain、端口和协议的两种方法
- Python 中的 - 是什么意思
- utilities——C++常用仿函数
- 10.TreeSet、比较器
- 支持10秒自毁的新芯片
- Win10自带播放器怎么倍速播放视频
- 根据pix飞控log文件和photo文件夹建立pos文件,提取pos数据小程序
- noob_Noob的Three.js指南
- 第十七周博客作业西北师范大学|李晓婷
- 初学C语言——三位数倒序
- 算法题--字符串排列组合、n皇后、字符出现次数(C++)
- 沧小海读《图解TCP/IP》笔记——第四章 IP协议
- java 面试 自我介绍
- 云计算供应商在合同谈判时可能拒绝的三个事项以及要求
- 大数据让电商实现精准营销
- yandex浏览器_15分钟内制作自己的文本编辑器:Yandex的实践
热门文章
- solrcloud配置中文分词器ik
- 高级语言程序设计II 实验报告三c++使用文本文件和二进制文件的读写比较两者的区别和优劣...
- PHP的性能大坑--strtotime函数
- HP 360G5 IO性能提高方法
- ASP.NET AJAX入门系列(6):UpdateProgress控件简单介绍
- python对数字进行简单的可逆加密_Python实现简单的可逆加密程序实例
- json替换table下的所有值_京东云所有地域正式支持 MySQL 8.0!
- python 大小端转换,大小端 python
- python指定目录生成.csv文件_python文件处理-根据csv文件内容,将对应图像拷贝到指定文件夹...
- python中for循环的用法_@Python小白,一文让你掌握Python爬虫