- 博客(3)
- 收藏
- 关注
原创 剑指offer》面试题3:前n个数字二进制形式中一的个数
输入一个非负数你,请计算0到n之间每一个数字的二进制形式中1的个数,并输出一个数组。例如,输入的n为4,由于0、1、2、3、4的二进制形式中1的个数分别是0、1、1、2、1,因此输出数组[0,1,1,2,1].//用于储存0-num的1的个数。++i){//循环遍历0-num的二进制数。=0){//每次都去最右边的一个一,直到变成0。//将最右边的1变成0。我们可以用i&(i-1)将二进制最右边的1变成0。整数i1的个数等于i&(i-1)1的个数加1。奇数比i/2中1的个数多一个。计算i/2中1的个数。
2023-03-09 15:43:12
85
原创 《剑指offer》面试题2:二进制加法
输入两个表示二进制的字符串,请计算它们的和,并以二进制字符串的形式输出。例如,输入的二进制字符串分别是"11"和"10",则输出”101”.如果直接将二进制转换成十进制的会有溢出的风险,所以我们直接对字符串进行操作。
2023-03-02 15:42:06
173
原创 《剑指offer》面试题1:整数的除法
我们可以对其进行优化,当被除数大于除数时,继续比较判断被除数是否大于除数的2倍,如果是继续判断是否大于除数的4倍、8倍等。如果被除数最多大于除数的2的次幂那先减去除数2^k次幂,然后再重复前面的步骤。例如,输入15,2,输出15/2的结果,即7。首先要解决符号的问题,我们可以用减法来实现除法。例如15/2的商,可以用15不断减去2,当减去7个2的时候余数是一,所以商就是7。基于题目没有告知所给的数是否都是整数,所以还要考虑正负号不相同的情况,如果有负数我们可以先把它转成正数,计算后再调正结果的正负号。
2023-02-26 20:53:33
377
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人