摘要: 【题目描述】把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增序列的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。【解决方案】1. 使用二分查找,画图思考;2. 考虑旋转数组的数量为0时(即为... 阅读全文
posted @ 2015-09-10 22:34 叫我霍啊啊啊 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 【题目描述】用两个栈实现一个队列。队列的声明如下,请实现他的两个函数AppendTail和DeleteHead,分别完成在队尾部插入结点和在队头删除结点的功能。【解决方案】stackAppend栈用来添加,stackDelete栈用于删除,当stackDelete栈没有元素时,则从stackAppe... 阅读全文
posted @ 2015-09-10 17:06 叫我霍啊啊啊 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 【题目描述】输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。【解决方案】首先理解前序遍历(PreOrder),中序遍历(InOrder),后序遍历(PostOrder)的区别,并能在纸上根据前两种遍历,写出后一种遍历,基本就能写出本题的代码,不赘述。我的代码实现,仅供参考: 1 ... 阅读全文
posted @ 2015-09-10 15:13 叫我霍啊啊啊 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 【题目描述】输入一个链表的头结点,从尾到头反过来打印出每个结点的值。【解决方案】1. 最普通的方法,先反转链表,再输出。但是,由于反转会改变链表结构,不推荐;2. 典型的“后进先出”,联想到栈,可以输出到栈中,再以此读取;3. 栈可以用递归实现,故可以用递归实现。如果数据量大,可能导致方法调用栈溢出... 阅读全文
posted @ 2015-09-10 13:51 叫我霍啊啊啊 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 【题目描述】请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“We are happy.”,则输出“We%20are%20happy.”。【解决方案】1. 时间复杂度为O(n^2)因为空格替换成“%20”之后,增加了两个字符,可能会造成原来的字符串放不下修改之后的字符串,需要遍历原来的... 阅读全文
posted @ 2015-09-10 10:40 叫我霍啊啊啊 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 【题目描述】在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样一个二维数组和一个整数,判断数组中是否存在该整数。【解决方案】每次根据右上角的一个数arr[i][j]和所求整数num的比较结果,来排除一行(或一列)的整数。arr[i][j... 阅读全文
posted @ 2015-09-10 09:42 叫我霍啊啊啊 阅读(114) 评论(0) 推荐(0) 编辑