![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
刷题题解
zhisheng_blog
这个作者很懒,什么都没留下…
展开
-
计算字符串最后一个单词长度
题目:计算字符串最后一个单词的长度,单词以空格隔开输入样例:hello world输出样例:5题目分析:①由于题目中输入的字符串有空格,所以我们这里不能用scanf输入,我们采用gets(s)②我们要检测最后一个单词的长度,也就是可以说明我们可以从后面往前面循环找出第一个空格位置,之后直接求差值我们就可以知道这个字符串最后一个单词的长度③由于我们需要循环,所以我们考原创 2016-03-13 21:22:46 · 1044 阅读 · 0 评论 -
《剑指Offer》查找和排序——旋转数组中的最小数字
题目: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路:旋转之后的数组实际上可以划分成两个有序的子数组:前面子数组的大小都大于后面子数组中的元素 注原创 2017-03-23 19:41:27 · 1029 阅读 · 0 评论 -
《剑指offer》数组——二维数组中查找
题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路: 利用二维数组由上到下,由左到右递增的规律, 那么选取右上角或者左下角的元素 arr[row][col] 与 target 进行比较 这里就选右上角元素,当 target < arr[0][c原创 2017-03-13 20:24:13 · 549 阅读 · 0 评论 -
《剑指Offer》位运算——求二进制数中1的个数
题目: 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。思路:如果一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。其余所有位将不会受到影响。举个例子:一个二进制数1100,从右边数起第三位是处于最右边的一个1。减去1后,第三位变成0,它后面的两位0变成了1原创 2017-03-22 22:48:01 · 1315 阅读 · 12 评论 -
《剑指Offer》递归和循环——斐波那契数列
题目: 大家都知道斐波那契数列(0、1、1、2、3、5、8、13、21、……), 现在要求输入一个整数n,请你输出斐波那契数列的第n项。主要算法:public int Fibonacci(int n){ int a=1,b=1,c=0; //对n进行判断 if (n <= 0){ return 0;原创 2017-03-12 23:03:46 · 625 阅读 · 0 评论 -
《剑指Offer》替换空格(将字符串中的空格替换为%20)
题目: 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为 We Are Happy.则经过替换之后的字符串为 We%20Are%20Happy。思路:这种替换问题要考虑是否会覆盖原字符串,若是在源字符串上直接替换。看到这个问题我觉得很多人都会想到直接从头开始替换,即遇到空格就将其替换为%20,每次都要将空格后的字符后移两个字节。这种解法的时间复杂度为O(n^2)!!!另外原创 2017-03-12 11:10:01 · 3125 阅读 · 6 评论 -
《剑指Offer》递归和循环——矩形覆盖
题目: 我们可以用 2*1 的小矩形横着或者竖着去覆盖更大的矩形。请问用 n 个 2*1 的小矩形无重叠地覆盖一个 2*n 的大矩形,总共有多少种方法?代码:RectCover.javapublic class RectCover{ public int RectCover(int target) { if (target <= 0) { re原创 2017-03-20 23:09:22 · 960 阅读 · 3 评论 -
《剑指Offer》递归和循环——跳台阶
题目 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路 首先我们考虑最简单的情况。如果只有1个台阶,那么显然只有一种跳法;如果是2级台阶,那么有2种跳法。 对于一个有n级台阶的楼梯来说,我们设跳法为 f(n) ,假如我们先跳1个台阶,则剩下有 n-1 个台阶,跳法为 f(n-1) 次, 假如我们先跳2个台阶,则剩下 n-2 阶,跳法原创 2017-03-17 22:26:10 · 1140 阅读 · 4 评论 -
《剑指offer》栈和队列——用两个栈实现一个队列
题目 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路 将一个栈作为压入栈 ( stackPush ),在压入数据时只往该栈压入,另外一个栈作为弹出栈,在弹出数据时只从这个栈弹出 ( stackPop )。 因为栈的特点是:先进后出,所以先将所有数据逐一压入 stackPush 栈中,然后再将所有数据从栈 stackPush 顶到栈底逐一压原创 2017-03-17 21:02:07 · 852 阅读 · 5 评论 -
fork() || fork()和fork() && fork()笔试题
程序一:int main() { fork() || fork(); printf("+"); return 0; } 结果输出3个”+”,共创建3个进程。fork()给子进程返回一个零值,而给父进程返回一个非零值;在main这个主进程中,首先执行 fork() || fork(), 左边的fork()返回一个非零值,根据||的短路原创 2017-02-12 23:17:11 · 5464 阅读 · 0 评论 -
有一个虚拟存储系统,若进程在内存中占3页(开始时内存为空),若采用先进先出(FIFO)页面淘汰算法,当执行如下访问页号序列后1,2,3,4,5, 1,2,5,1,2,3,4,5,会发生多少缺页?
有一个虚拟存储系统,若进程在内存中占3页(开始时内存为空),若采用先进先出(FIFO)页面淘汰算法,当执行如下访问页号序列后1,2,3,4,5, 1,2,5,1,2,3,4,5,会发生多少缺页?A:7 B:8 C:9 D:10答案:D,10。 注意:缺页定义为所有内存块最初都是空的,所以第一次用到的页面都产生一次缺页。 内存块数是3时: FIFO,发生缺页时的调入顺序即为淘汰顺序 1、原创 2016-08-25 08:30:28 · 24505 阅读 · 5 评论 -
假设在n进制下,下面的等式成立,n值是() 567*456=150216 9 10 12 18
假设在n进制下,下面的等式成立,n值是() 567*456=1502169101218假设n进制,则有(5*n 2 +6*n+7) * (4*n 2 +5*n+6) = n 5 +5*n 4 +2*n 2 +n+6,简化以后可以得到15*n4+49*n3+86*n2+70*n+36=n5,两边同时除以n5,可以得到15/n+49/n2+86/原创 2016-08-22 09:52:23 · 1057 阅读 · 0 评论 -
我们用一个等臂天平来称物体的质量,如果我们要称的物体质量范围在1到40克(整数),请问我们最少需要几块砝码可以完成这项物体质量的称量?
我们用一个等臂天平来称物体的质量,如果我们要称的物体质量范围在1到40克(整数),请问我们最少需要几块砝码可以完成这项物体质量的称量?A: 3 B: 4 C: 5 D: 6 E: 7答案:B 4块思路一: 从1开始:缺少1,+1 2:缺2,但是前面最大可能满足的元素为1,所以下个砝码可以为3(3-1=2) 3: 4: 5:缺5,而前面的砝码可以最大表示原创 2016-08-27 18:24:52 · 1885 阅读 · 0 评论 -
两个圆,半径分别为1cm,3cm,小圆在大圆外,绕大圆圆周一周,请问小圆一个旋转了多少圈?
两个圆,半径分别为1cm,3cm,小圆在大圆外,绕大圆圆周一周,请问小圆一个旋转了多少圈?A. 4 B. 1 C. 2 D. 3答案:A 4圈把大圆剪断拉直.小圆绕大圆圆周一周,就变成从直线的一头滚至另一头.因为直线长就是大圆的周长,是小圆周长的3倍,所以小圆要滚动3圈.但是现在小圆不是沿直线而是沿大圆滚动,小圆因此还同时作自转,当小圆沿大圆滚动1周回到原出发点时,小圆同时自转1周.当原创 2016-08-27 18:10:39 · 14780 阅读 · 1 评论 -
加密和安全-题解<1>
选B SHARSA为非对称加密、DES为对称加密,均有对应的“解密”;BASE64为简单的编码解码。SHA为哈希算法,不可逆。Base64,DES,RSA,SHA1,MD5笔记1,Base64场景:你想把一组二进制数据表示为一组可见字符,这样在某些场合更加利于传输,比如在邮件中传输。算法:http://zh.wikipedia.org/wik原创 2016-08-12 11:26:35 · 887 阅读 · 0 评论 -
关于String s = new String("xyz"); 创建几个对象的问题
你知道在 java 中除了 8 种基本类型外,其他的都是类对象以及其引用。所以 "xyz "在 java 中它是一个String 对象.对于 string 类对象来说他的对象值是不能修改的,也就是具有不变性。看:String s= "hello "; s= "Java "; String s1= "hello "; String s2=new String( "hello ")原创 2017-04-05 23:21:32 · 5928 阅读 · 1 评论