数据结构面试题
文章平均质量分 66
yangchangshu
这个作者很懒,什么都没留下…
展开
-
剑指Offer之二叉树重构
这题指的是给定一个前序和一个后序二叉树遍历序列,gen'jue原创 2014-09-04 14:28:25 · 578 阅读 · 0 评论 -
剑指Offer之从尾到头打印链表
这题有两种思考方式,一种是添加辅助空间,先进后出,当然是栈了,做法就是遍历链表,将值压入栈中,然后再一次弹出。还有一种方法是链表反序,链表反序也有两种方法。一种是将链表在原有的基础上更改指针,进行反序。光看代码可能不太还理解,我们可以看一下执行过程。假设p1->p2->p3->p4->p5->p5->.......那么执行一次为p1p3->p4->p5.......然后p1=p2;p2=p3;原创 2014-09-03 23:24:29 · 666 阅读 · 0 评论 -
剑指Offer之替换空格
本身难度并不大,java一个replace();就可以了,或者另外开辟一个String,遍历一遍也是可行的,但是出发点并不是A题,而是考虑性能,程序在空间还有时间上的使用以及程序的鲁棒性,不过九度上的测试数据还真是大char数组要开到10^6次方。普通的就不说了,介绍一下书中的方法。假设str="We Are Happy";设置两个指针p1,p2。初始化为0.p1指的是原长度,p2指的是替原创 2014-09-03 18:20:19 · 654 阅读 · 0 评论 -
剑指Offer之二维数组中的查找
这题是剑指Offer一书中得题,但是实在感觉这题不用suan'fa原创 2014-09-02 22:48:07 · 550 阅读 · 0 评论 -
剑指Offer之把数组排成最小的数
假设一个数组number{3,32,321}则这3个数的原创 2014-09-07 15:56:34 · 495 阅读 · 0 评论 -
剑指Offer之链表中倒数第K个节点
这题也是网上的老题了,查过的人dou'zhi'dao原创 2014-09-06 15:13:24 · 487 阅读 · 0 评论 -
剑指Offer调整顺序使奇数位于偶数前面
要求输入一串整数,使奇数位于偶数前面。九度OJ上平台还要求顺序s原创 2014-09-06 13:33:01 · 557 阅读 · 0 评论 -
剑指Offer之打印1到最大的n位数
这题因为没有告诉这个数都低有几位,因此不可能使用int原创 2014-09-06 10:15:37 · 456 阅读 · 0 评论 -
剑指Offer之数值的整数次方
要求这题需要注意一下几点:1.n可为负数2.原创 2014-09-05 18:24:20 · 457 阅读 · 0 评论 -
剑指Offer之斐波那契数列
斐波那契数列教科书都有,而且基本都会出现在递归那一节。但是并不是说递归就是斐波那契的最好解法,而是因为它能更好的诠释什么是递归。但是真正的软件开发并不会使用此种方法。递归有其最大的好处就是简洁,将大的问题转化为小的问题。在宏观上很好理解。但是递归的效率也是很值得探讨的。递归需要系统自己本身不停的压栈,保存中间量和状态,而且调用函数也是需要时间和空间的。因此效率上就出现了问题。而且每个进程所开的栈的原创 2014-09-05 09:53:10 · 726 阅读 · 0 评论 -
剑指Offer之用两个栈实现队列
栈的性质是先进后出,队列是原创 2014-09-04 16:35:28 · 519 阅读 · 0 评论 -
剑指Offer之旋转数组的最小数字
这题最简单的想法就是从头到尾搜一遍,OJ上确实能过,680MS大约。但面试时肯定不行了,看一下操作流程。假设数组为3 4 5 1 2。那么旋转数组有个特性,r[0]>=r[n-1]因为要保证其递增序列,假设数组为r[0]~r[j]~r[n]。那么将r[0]~r[j-1]移到后面去,很显然r[j]>=r[j-1]。因此我们可以判断,当r[0]回过头来接着观察3 4 5 1 2。此时设置两个指针,原创 2014-09-04 23:37:47 · 677 阅读 · 0 评论