![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试题
go2sea
这个作者很懒,什么都没留下…
展开
-
【百度面试题】求包含固定字符集的最短子串
问题描述:一串首尾相连的珠子(m个),有N种颜色(N设计一个算法,取出其中一段,要求包含所有N中颜色,并使长度最短。并分析时间复杂度与空间复杂度。问题可等同于求一个长字符串c中包含固定字符集target的最短子串如"abddcbda"中包含"abc"的最短子串是"cbda"算法:指针head,rear分别指向目前已知的最短子串,初始值为c的头和尾指针begain,end是当原创 2014-10-09 11:01:34 · 1021 阅读 · 0 评论 -
有序数列中查找和为某定值的两个数
问题描述:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。算法:原创 2014-10-03 01:04:48 · 1461 阅读 · 0 评论 -
约瑟夫循环问题的两种思路
问题描述:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。(简单的约瑟夫循环问题原创 2014-10-03 01:16:58 · 829 阅读 · 1 评论 -
翻转句子中单词的顺序
问题描述:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student. a am I”。算法:设置一个栈stack,从句子原创 2014-10-03 01:26:44 · 431 阅读 · 0 评论 -
查找字符串中只出现一次的字符——哈希表
问题描述:在一个字符串中找到所有的只出现一次的字符。如输入abaccdeff,则输出b d原创 2014-10-03 01:45:22 · 662 阅读 · 0 评论 -
腾讯面试题:上排下排次数的两种思路
这是一道腾讯面试题问题描述:给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数 要求下排每个数都是先前上排那十个数在下排出现的次数。 上排的十个数如下: 【0,1,2,3,4,5,6,7,8,9】初看此题,貌似很难,10分钟过去了,可能有的人,题目都还没看懂。 举一个例子, 数值:0,1,2,3,4,5,6,7,8,9 分配: 6,2,原创 2014-10-03 02:26:24 · 717 阅读 · 0 评论 -
在二元树中找出和为某一值的所有路径
问题描述:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如输入整数22和如下二元树 10 / / 5 12 / / 4 7则打印出两条路径:10,12和10, 5,7。原创 2014-10-03 02:41:54 · 533 阅读 · 0 评论 -
二元查找树转化成排序的双向链表——要求不创建新的节点
码完第一次编译运行居然就成功了。。。高兴~问题描述:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。例如: 10 / \ 6 14 / \ / \ 4 8 12 16 转换成双向链表4=6=8=10=12=14=16算法:原创 2014-10-03 20:23:41 · 773 阅读 · 0 评论 -
变形二叉树中节点的最大距离(树的最长路径)——非递归解法
问题描述:如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。 写一个程序,求一棵二叉树中相距最远的两个节点之间的距离。测试用的树: n1 / \原创 2014-10-04 01:16:26 · 2240 阅读 · 0 评论 -
二叉树中节点的最大距离(树的最长路径)——递归解法
问题描述:如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。写一个程序,求一棵二叉树中相距最远的两个节点之间的距离。原创 2014-10-05 03:33:06 · 13971 阅读 · 0 评论 -
二元查找树的翻转(镜像)的两种思路
问题描述:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。算法:测试用例: 10 / \ 5原创 2014-10-05 16:01:41 · 1026 阅读 · 0 评论 -
中兴面试题:简单的背包问题的两种思路
问题描述:输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来。这是一个简单的背包问题算法:有一些分析认为此题有两种思路:递归和非递归。但是我觉得“是否递归”只是形式上的区别,用来代表两种思路有点牵强。我认为应该从算法的处理过程来区分:第一种:检查所有的组合,去掉和不为m的组合。直观地可将算法分成两步①原创 2014-10-05 18:27:32 · 1281 阅读 · 0 评论 -
【google面试题】求1到n的正数中1出现的次数的两种思路及其复杂度分析
问题描述:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1 的数字有1,10,11和12,1一共出现了5次。这是一道广为流传的google面试题。算法:第一种思路:对从1到n的每个数进行统计,统计的结果相加。算法复杂度为O(n)第二种思路:举例说明。令n=321,则:它的个位上出现1的形式为XY1,次数和为33(因为十原创 2014-10-07 15:23:29 · 1063 阅读 · 1 评论 -
连续子数组的最大和:线性扫描和分治法
问题描述:原创 2014-10-02 22:47:30 · 766 阅读 · 0 评论