笔试
疯一样的雨
在最糟糕的日子里遇到了最幸运的人!
展开
-
在二维数组中查找数
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个 函数,输入这样一个二维数组和一个整数,判断数组中是否含有该整数。解析:题目并不是很难,最简单的方法就是遍历数组,找出该数是否在数组中。但是有更简便的方法: 首先选取数组右上角的数字,如果该数字就是要找的数字,则说明该数字在数组中,结束。 如果该数字大于要查找的数字原创 2015-11-03 21:15:51 · 440 阅读 · 0 评论 -
判断一个数是不是2的幕
判断一个数n是否为2的幂,只需要判断n&(n-1)是否为0,若为0,则为2的幂。因为二进制的位数刚好是按2的幂数展开的。一个数是否为2的幂,则其除了首位外其他位数都应该是0;例如:4 8为 0100 1000 &0011 & 0111------- ----------- 0000 0000原创 2015-10-24 18:46:48 · 474 阅读 · 0 评论 -
const,#define等的区别
1、#define,const的区别①、编译器处理方式不同define宏是在预处理的时候展开并且没有类型,不会做任何类型检查,而const是在编译运行的时候使用,在编译的时候会进行类型检查,并且可以调试。②、存储的方式不同系统会给const变量分配一个静态区域的内存地址,所以在程序运行中const变量只有一个拷贝。而#define定义的宏只是一个立即数,在程序运行中有多个拷贝,因此原创 2015-10-24 19:02:12 · 332 阅读 · 0 评论 -
数据结构笔试题---栈
1、设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5、e6一次压入栈S,一个元素出栈后即进入队列Q,若出队列的顺序为e2、e4、e3、e6、e5、e1,则栈S的容量要求最小值为()A、2 B、3C、4 D、5解析:原创 2015-10-28 21:06:56 · 2926 阅读 · 0 评论 -
求两个数最大公约数
题目: 写一个程序,求两个正数的最大公约数。如1100100210001,120200021,求其最大公约数分析:设两个数分别为x,y 求其最大公约数f(x,y),如果有x%2==0而y%2不等于0,那么可以 约简为f(x/2,y),同样道理适用于y 如果x与y都是偶数,那么最大公约数可以为f(x/2,y/2)*2 如果x与y都是奇数,那么最大公约数可以为f原创 2015-10-29 19:28:15 · 568 阅读 · 0 评论 -
求一个数二进制中1的个数
题目: 对于一个字节的无符号整形变量,求其二进制表示中“1”的个数,要求算法的执行效率尽可能高分析:其实很简单,对于8这样的一个数,其二进制1000,其1的个数为1. 可以将它与它减1的数相与,这样相当于1000与0100相与一次,结果为0 对于10,其二进制1010,其1的个数为2 按照上术的思路,1010与1001相与一次结果为1000原创 2015-10-28 19:52:18 · 409 阅读 · 0 评论 -
求子数组的最大乘积
题目:给定一个长度为N的整数数组,只允许用乘法,不允许用除法,计算任意(N-1)个数的组合中乘积最大的一组,并写出算法的时间复杂度思路:可以理解为从一个数组里去掉某一个数使得数组最大,数组里面有正数,负数,0,可以分为几种情况 数组里面有0的情况: 1、如果数组里面有一个0,负数个数是偶数,那么总值必为0,此时去掉0可以达到最大值 2、如果数组里面有一个0原创 2015-10-30 17:54:01 · 534 阅读 · 0 评论 -
计算阶乘中0的个数
题目: 1、给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N=3628800. N的末尾有两个0 2、求N!的二进制表示中最低位1的位置1、分析:阶乘虽然大,但是求0的个数只有2x5,4x5,6x5,8x5才有0,但是5的数目最小,且都 要用到5,即可转化为求N!中5的个数 若N = 5,则5的个数为1个原创 2015-10-31 14:59:07 · 2281 阅读 · 0 评论 -
找出发贴水王
传说,Tango有一大水王,他不但喜欢发贴,还会回复其他ID发的每个帖子。坊间见闻该水王发贴 数目超过了帖子总数的一半,如果你有一个当前论坛上所有帖子的列表,其中帖子作者的ID也在表中 ,你能快速找出这个传说 中的Tango水王吗?思路: 既然水王的帖子起过总数的一半,那么如果遍历一遍ID列表,把不同的ID删除掉,包括水王的 ID,那么最后剩下的帖子中水王的ID还原创 2015-11-01 13:49:22 · 496 阅读 · 0 评论