leetcode338 比特位计数

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

思路:记录之前的答案,对于现在的数字:除了最高位,剩下的数字已经被算出来了,答案就等于最高位(1或0)+之前的答案即可。

public class Solution {public int[] countBits(int num) {int[] ans = new int[num + 1];for (int i = 1; i <= num; ++i)ans[i] = ans[i >> 1] + (i % 2);return ans;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/444826.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++(11)--编程实践1-经典养成类游戏简单实践

经典养成类游戏简单实践-小公主养成记《老九学堂C课程》学习笔记。《老九学堂C课程》详情请到B站搜索《老九零基础学编程C入门》-------------简单的事情重复做&#xff0c;重复的事情用心做&#xff0c;用心的事情坚持做(老九君)---------------致敬&#xff1a;日本Gainax公司…

关于房屋的风水学整理

第一步&#xff1a;看缺角&#xff0c;根据户型图的整体形状分析有无缺角户型的形状很多&#xff0c;有三角形的&#xff0c;手枪形的&#xff0c;锯齿型的等等&#xff0c;总的来说缺角就不好&#xff0c;方方正正好&#xff0c;适合“天方地圆”。如下图什么是缺角&#xff0…

房屋凶吉位判断

房屋的吉凶位按八宅来判断比较适合自身简易的操作&#xff0c;但每个房屋&#xff0c;都是既有共性&#xff0c;也有个性的&#xff0c;具体的吉凶方位的判断&#xff0c;可能要用到家中每个人的年命、运程&#xff0c;房屋周边的山水形势及地理环境要素。这些内容&#xff0c;…

leetcode226 反转二叉树

翻转一棵二叉树。 示例&#xff1a; 输入&#xff1a; 4 / \ 2 7 / \ / \ 1 3 6 9 输出&#xff1a; 4 / \ 7 2 / \ / \ 9 6 3 1 备注: 这个问题是受到 Max Howell 的 原问题 启发的 &#xff1a; 谷歌&#xff1a;我们90&#xff05;的…

Linux(9)-Vim编辑器的使用

Vim编辑器的使用1.指令模式常用快捷键1.1 定位快捷键1.2 编辑快捷键1.3查找相关的快捷键2.行末模式常用命令2.1 文件操作命令3. 切换默认编辑器nano->vim4.tip4.1显示行号vim编辑器有3种工作模式&#xff1a;指令模式–依据快捷键对文本进行编辑–复制、黏贴、删除、查找输入…

微信app公众平台开发

http://www.cnblogs.com/txw1958/p/wechat-tutorial.html

用awk一些常用技巧sort uniq

统计文件中第一列中同一IP出现的次数cat test123.122.123.12 12121212121.2332.121.11 232323255.255.255.255 21321123.122.123.12 12121212123.122.123.12 1212121er2123.122.123.12 12121212eer123.122.123.12 12121212ere255.255.255.255 21321121.2332.121.11 232323255.2…

leetcode234 回文链表

请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶&#xff1a; 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题&#xff1f; 思路&#xff1a;逆置前一半&#xff0c;然后从中心出发开始比较即…

mysql导入source数据库sql的C++实现和封装

之前有好多人在为这件事情头疼不已: 想有一个不需要安装mysql客户端就可以导入数据库脚本,但找不到对应的api调用。所以得需要自己去实现导入数据库的实现方法: common.h #ifndef _COMMON_H #define _COMMON_H #ifdef WIN32#include <winsock2.h>typedef __int8 …

C++(12)--函数基础:按值传递、传递数组、函数指针

模块化编程--函数1. 函数基本知识2. 函数的参数2.1 按值传递机制&#xff08;小议按引用传递&#xff09;2.2 使用数组做函数参数&#xff08;用户头文件&#xff0c;const的防改&#xff09;2.3 使用二维数组作为函数的参数2.4 使用函数指针作为函数的参数2.4.1 函数指针的基本…

关于关闭SELinux的方法

原贴:http://www.diybl.com/course/6_system/linux/Linuxjs/2008629/129166.html关闭SELinux的方法&#xff1a;修改/etc/selinux/config文件中的SELINUX"" 为 disabled &#xff0c;然后重启。如果不想重启系统&#xff0c;使用命令setenforce 0注&#xff1a;seten…

leetcode739 每日温度

根据每日 气温 列表&#xff0c;请重新生成一个列表&#xff0c;对应位置的输入是你需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高&#xff0c;请在该位置用 0 来代替。 例如&#xff0c;给定一个列表 temperatures [73, 74, 75, 71, 69, 72, 76, 73]&#…

scp免密码远程拷贝

有些时候&#xff0c;我们在复制/移动文件 到另一台机器时会用到scp&#xff0c;因为它比较安全。但如果每次都要输入密码&#xff0c;就比较烦了&#xff0c;尤其是在script里。不过&#xff0c;ssh有另一种用密钥对来验证的方式。下面写出我生成密匙对的过程&#xff0c;供大…

C++(13)--函数的进阶:内联、传递引用、参数默认值、重载、函数模板

模块化编程--函数的进阶1.内联函数1.1 inline基本情况1.2 inline 的前世今生-带参的宏替换2.传递引用&#xff08;重点&#xff09;2.1引用、理由、注意事项2.3 交换两个变量的数值3.返回引用3.1不要返回局部变量的引用3.2函数可以不返回值&#xff0c;默认返回传入的引用对象本…

终于,我读懂了所有Java集合——set篇

HashSet &#xff08;底层是HashMap&#xff09; Set不允许元素重复。 基于HashMap实现&#xff0c;无容量限制。 是非线程安全的。 成员变量 private transient HashMap<E,Object> map; // Dummy value to associate with an Object in the backing Map private s…

加速scp传输速度

当需要在机器之间传输400GB文件的时候&#xff0c;你就会非常在意传输的速度了。默认情况下(约125MB带宽&#xff0c;网络延迟17ms&#xff0c;Intel E5-2430&#xff0c;本文后续讨论默认是指该环境)&#xff0c;scp的速度约为40MB&#xff0c;传输400GB则需要170分钟&#xf…

tcpcopy使用方法

1、下载tcpcopy http://code.google.com/p/tcpcopy/downloads/list 2、配置、编译、安装 依此使用如下命令&#xff1a; 配置&#xff1a; ./configure 编译&#xff1a; make 安装&#xff1a; make install 3、使用方法 下面以mosquitto为例&#xff0c;说明tcpcopy的用法&a…

C++(14)--面向对象

面向对象1.面向对象编程(难点)2.类和对象demo1:地主类的实现版本1demo2:地主类的实现版本23.访问修饰符demo3:外部修改成员变量不安全(版本3)demo4: 使用封装防止直接修改成员变量&#xff08;版本3&#xff09;demo5:进一步封装&#xff1a;设置/获取名字&#xff0c;修改积分…

终于,我读懂了所有Java集合——map篇(多线程)

多线程环境下的问题 1.8中hashmap的确不会因为多线程put导致死循环&#xff08;1.7代码中会这样子&#xff09;&#xff0c;但是依然有其他的弊端&#xff0c;比如数据丢失等等。因此多线程情况下还是建议使用ConcurrentHashMap。 数据丢失&#xff1a;当多线程put的时候&…

system函数的返回值和执行脚本的返回值

1、先统一两个说法&#xff1a;&#xff08;1&#xff09;system返回值&#xff1a;指调用system函数后的返回值&#xff0c;比如上例中status为system返回值&#xff08;2&#xff09;shell返回值&#xff1a;指system所调用的shell命令的返回值&#xff0c;比如上例中&#x…