常见面试题
文章平均质量分 64
小飞侠0070
是谁来自山川湖海,却囿于厨房,昼夜与爱
展开
-
最长回文字符串_manacher算法
回文串就是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。回文子串,顾名思义,即字符串中满足回文性质的子串。比如输入字符串 "google”,由于该字符串里最长的对称子字符串是 "goog”,因此输出4。算法的基本思路是这样的:把原串每个字符中间用一个串中没出现过的字符分隔#开来(统一奇偶),同时为了防止越界,在字符串的首部也加入一个特殊符$,但是与分隔符不转载 2016-08-29 14:24:59 · 398 阅读 · 0 评论 -
C++笔试题
来源:http://www.nowamagic.net/librarys/veda/detail/5191. 以下三条输出语句分别输出什么?1char str1[] = "abc";2char str2[] = "abc";3const char st转载 2016-08-29 21:16:17 · 497 阅读 · 0 评论 -
总结---1
转载自:http://www.cnblogs.com/heyonggang/p/3308377.html1.const与 #define有什么不同?答:C++中可以使用const定义常量,也可以用#define定义常量,但是前者比后者有更多的优点①const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只是进行字符替换,没有做类转载 2016-08-29 20:28:29 · 566 阅读 · 0 评论 -
位运算
位运算 位运算是把数字用二进制表示之后,对每一位上0或者1的运算。 理解位运算的第一步是理解二进制。二进制是指数字的每一位都是0或者1.比如十进制的2转化为二进制之后就是10。在程序员的圈子里有一个流传了很久的笑话,说世界上有10种人,一种人知道二进制,而另一种人不知道二进制。。。。。。 其实二进制的运算并不是很难掌握,因为位运算总共只有5种运算:与、或、异或、左移、右移。如下表转载 2016-08-29 20:23:33 · 335 阅读 · 0 评论 -
树的子结构
面试题目:输入两颗二叉树A,B,判断B是不是A的子结构;先找到B根节点对应的A的节点,在判断是否相同。主要部分代码:bool ifTheSameTree(BiTree &t1,BiTree &t2){ if (t2 == NULL)return true;//B树为空,肯定是相同的树 if(t1 == NULL)return false; if (t1->转载 2016-08-29 20:09:22 · 388 阅读 · 0 评论 -
根据前序和中序推出后序
最近面试总遇到这种根据给出的两类序遍历,然后求按另一种形式序的遍历。看来有必要好好总结下这个知识点,省的每次笔试时都得花不少时间推导。首先,我们看看前序、中序、后序遍历的特性: 前序遍历:(根—>左—>右) 1.访问根节点 2.前序遍历左子树 3.前序遍历右子树 中序遍历:(左—>根—>右) 1.中序遍历左子树转载 2016-08-29 20:06:04 · 1467 阅读 · 0 评论 -
寻找数组中第二大或第二小的数值
昨天晚上参加了360校园招聘的笔试,其中最后一道笔试题就是找数组中的第二大的数。可以看出今年360笔试的试题还是不难的,想起昨晚提前把试题做完后,提前把试卷给交了,就和旁边的北大的一哥们聊天,聊最近的各种笔试、面试以及被鄙视。快到公交站时,还讨论着明天的腾讯、百度,以及晚上的去哪儿网的笔试。找工作还确实是个体力活啊!到处赶场。2013年360校园招聘题:写一个函数找出一个整数数组中,第转载 2016-08-29 19:58:09 · 3280 阅读 · 0 评论 -
删除链表中的重复元素
昨晚在参加兰亭集势的笔试时,看到了这样一个题目。大致意思就是给出一个单链表,链表中有重复的元素,需要删除重复的元素。如:1→2→3→5→4→3→7,删除重复元素后变成1→2→3→5→4→7。思路其实还蛮简单:建立三个工作指针p,q,r,然后p遍历全表。p每到一个结点,q就从这个结点往后遍历,并与p的数值比较,相同的话就free掉那个结点。LinkList RemoveDupNode(Lin转载 2016-08-29 17:04:22 · 479 阅读 · 0 评论 -
判断单链表是否存在环
周末参加完美世界校园招聘中就有一道判断单链表是否有环的编程题。写一个C/C++函数,来判断一个单链表是否具有环,如果存在环,则给出环的入口点。有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。现在需要解决的问题有以下两个:如何判断一个链表是不是这类链表?如果链表为存在环,如果找到环的入口点?判断链表是否存转载 2016-08-29 17:00:34 · 454 阅读 · 0 评论 -
寻找和为定值的两个数
题目:输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。 解析:如果数组是无序的,先排序(n*logn),然后用两个指针i,j,各自指向数组的首尾两端,令i=0,j=n-1,然后i++,j-转载 2016-08-29 16:34:02 · 333 阅读 · 0 评论 -
100阶乘末尾有多少个零
题目:1*2*3*……*100 求结果末尾有多少个零 分析:一般类似的题目都会蕴含某种规律或简便方法的,阶乘末尾一个零表示一个进位,则相当于乘以10而10 是由2*5所得,在1~100当中,可以产生10的有:0 2 4 5 6 8 结尾的数字,显然2是足够的,因为4、6、8当中都含有因子2,所以都可看当是2,那么关键在于5的数量了那么该问题的实质是要求出1~100含有多少个5由特殊转载 2016-08-29 16:29:20 · 577 阅读 · 0 评论 -
TCP第三次握手失败怎么办
当失败时服务器并不会重传ack报文,而是直接发送RTS报文段,进入CLOSED状态。这样做的目的是为了防止SYN洪泛攻击。转载 2016-08-29 16:23:31 · 1504 阅读 · 0 评论 -
memcpy的函数
void * memcpy(void * des, void * src, size_t count){ if(des==NULL || src==NULL){ return NULL; } void * ans = des; des = static_cast dest; src = static_cast src; if(des>转载 2016-08-29 14:49:36 · 457 阅读 · 0 评论 -
已知ip地址和其子网掩码如何求网络号子网号主机号
已知ip地址为10.130.89.95,其子网掩码为255.255.255.224,求其网络号、子网号和主机号。要看子网掩码变长在第几节,255.255.255.224是在第四节借了位 把224转换为2进制,windows的计算器科学型能帮你计算。是11100000,借了三位 借了三位,子网个数为2的三次方等于8 即八个子网 其实书上说得挺复杂,我感觉,计算网络号最简单的方法就是转载 2016-08-29 14:34:38 · 25645 阅读 · 3 评论 -
动态规划之01背包问题
转载自:http://blog.sina.com.cn/s/blog_6dcd26b301013810.html首先是问题描述:给定n种物品和一背包,物品i的重量是wi,其价值是pi,背包的容量是M,问如何选择装入背包中的物品总价值最大?可以这样理解:背包的背负有上限,因此在这个上限内尽可能多的装东西,并且价值越多越好。在这里我之想讨论动态规划解决这个问题的详细过程。转载 2016-08-30 12:28:18 · 333 阅读 · 0 评论