面试题精选
文章平均质量分 76
WeroCPP
这个作者很懒,什么都没留下…
展开
-
带有取最小元素的栈,要求压栈、出栈、取最小元素时间复杂度O(1)
题目:设计包含min函数的栈。定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。头文件如下:/******************************************************************** 题目:设计包含min函数的栈。 定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。 要求函数min、push以及pop的时间复杂度都是O(1)。 思路:栈节点中增加一个指向最小元素的指原创 2011-03-15 09:50:00 · 2594 阅读 · 0 评论 -
求子数组的最大和
<br />题目:<br />输入一个整形数组,数组里有正数也有负数。<br />数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。<br />求所有子数组的和的最大值。要求时间复杂度为O(n)。<br />例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,<br />因此输出为该子数组的和18。<br />/***********************************************************原创 2011-03-15 14:29:00 · 1967 阅读 · 0 评论 -
二叉排序树在不借助新节点只修改指针转换为双链表
本题目来源于网络题目:把二元查找树转变成排序的双向链表输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 10 / / 6 14 / / / /4 8 12 16 转换成双向链表4=6=8=10=12=14=16。头文件如下:/******************************************************************** 1.把二元查找树转变成排序的双向链表 题目: 输入一棵二元查找树,将该二元查找原创 2011-03-14 11:41:00 · 1498 阅读 · 0 评论 -
在二元树中找出和为某一值的所有路径
4.在二元树中找出和为某一值的所有路径题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如 输入整数22和如下二元树 10 / / 5 12 / / 4 7则打印出两条路径:10, 12和10, 5, 7。二元树节点的数据结构定义为:struct BSTree_Node{ int nValue; // value of node BSTree_Node *pLeft;原创 2011-03-15 16:58:00 · 1894 阅读 · 1 评论 -
翻转句子中单词的顺序
<br />翻转句子中单词的顺序。<br />题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。<br />为简单起见,标点符号和普通字母一样处理。<br />例如输入“I am a student.”,则输出“student. a am I”。<br /> <br />第一个想法是借助栈实现,每解析一个单词压栈,解析完依次出栈,要求额外较大的空间开销;<br />仔细思考就可以得到如下结果:<br />首先把整个句子反转为 .tneduts a ma I<br原创 2011-03-17 16:12:00 · 3498 阅读 · 0 评论