https://github.com/Wang-Jun-Chao

分享知识,创造快乐!

排序:
默认
按更新时间
按访问量

【剑指Offer学习】【所有面试题汇总】

剑指Offer学习  剑指Offer这本书已经学习完了,从中也学习到了不少的东西,现在做一个总的目录,供自已和大家一起参考,学如逆水行舟,不进则退。只有不断地学习才能跟上时候,跟得上技术的潮流!目录第01-10题【剑指Offer学习】【面试题02:实现Singleton 模式——七种实现方式】【剑...

2015-07-15 07:26:11

阅读数:33959

评论数:5

【剑指Offer学习】【面试题67:机器人的运动范围】

题目:地上有个m行n列的方格。一个机器人从坐标(0,0)的格子开始移动,它每一次可以向左、右、上、下移动一格,但不能进入行坐标和列坐标的数位之和大于k的格子。举例分析  例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7=18.但它不能进入方格(35,38),因为3+5+3+...

2015-07-15 07:21:40

阅读数:4694

评论数:1

【剑指Offer学习】【面试题66:矩阵中的路径】

题目:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中任意一格开始,每一步可以在矩阵中间向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。举例分析  例如在下面的3*4的矩阵中包含一条字符串”bcced”的路径。但矩...

2015-07-15 07:10:06

阅读数:4010

评论数:0

【剑指Offer学习】【面试题65:滑动窗口的最大值】

题目:给定一个数组和滑动窗口的大小,请找出所有滑动窗口里的最大值。举例说明例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小,那么一共存在6个滑动窗口,它们的最大值分别为{4,4,6,6,6,5}。解题思路  如果采用蛮力法,这个问题似乎不难解决:可以扫描每一个滑动窗口的所有数字...

2015-07-14 08:18:26

阅读数:4800

评论数:2

【剑指Offer学习】【面试题64:数据流中的中位数】

题目:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有值排序之后位于中间的数值。如果数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。解题思路  由于数据是从一个数据流中读出来的,数据的数目随着时间的变化而增加。如果用一个数据容器来保存从流中读...

2015-07-14 08:05:21

阅读数:4383

评论数:0

【剑指Offer学习】【面试题63:二叉搜索树的第k个结点】

题目:给定一棵二叉搜索树,请找出其中的第k大的结点。解题思路  如果按照中序遍历的顺序遍历一棵二叉搜索树,遍历序列的数值是递增排序的。只需要用中序遍历算法遍历一棵二叉搜索树,就很容易找出它的第k大结点。结点定义private static class BinaryTreeNode { pr...

2015-07-14 07:53:05

阅读数:3940

评论数:0

【剑指Offer学习】【面试题62:序列化二叉树】

题目:请实现两个函数,分别用来序列化和反序列化二叉树。解题思路  通过分析解决前面的面试题6.我们知道可以从前序遍历和中序遍历构造出一棵二叉树。受此启发,我们可以先把一棵二叉树序列化成一个前序遍历序列和一个中序序列,然后再反序列化时通过这两个序列重构出原二叉树。   这个思路有两个缺点。一个缺点...

2015-07-13 08:25:45

阅读数:5661

评论数:1

【剑指Offer学习】【面试题61:按之字形顺序打印二叉树】

题目:请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,即第一行按照从左到右的顺序打印,第二层按照从右到左顺序打印,第三行再按照从左到右的顺序打印,其他以此类推。解题思路  按之字形顺序打印二叉树需要两个栈。我们在打印某一行结点时,把下一层的子结...

2015-07-13 08:11:07

阅读数:3882

评论数:0

【剑指Offer学习】【面试题60:把二叉树打印出多行】

题目:从上到下按层打印二叉树,同一层的结点按从左到右的顺序打印,每一层打印一行。解题思路  用一个队列来保存将要打印的结点。为了把二叉树的每一行单独打印到一行里,我们需要两个变量:一个变量表示在当前的层中还没有打印的结点数,另一个变量表示下一次结点的数目。结点定义private static cl...

2015-07-13 08:00:38

阅读数:3820

评论数:2

【剑指Offer学习】【面试题59:对称的二叉树】

题目:请实现一个函数来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。解题思路  通常我们有三种不同的二叉树遍历算法,即前序遍历、中序遍历和后序遍历。在这三种遍历算法中,都是先遍历左子结点再遍历右子结点。我们是否可以定义一种遍历算法,先遍历右子结点再遍历左子结点?比如我们...

2015-07-12 07:44:44

阅读数:2600

评论数:0

【剑指Offer学习】【面试题58:二叉树的下一个结点】

题目:给定一棵二叉树和其中的一个结点,如何找出中序遍历顺序的下一个结点?树中的结点除了有两个分别指向左右子结点的指针以外,还有一个指向父节点的指针。解题思路  如果一个结点有右子树,那么它的下一个结点就是它的右子树中的左子结点。也就是说右子结点出发一直沿着指向左子结点的指针,我们就能找到它的下一个...

2015-07-12 07:30:10

阅读数:2962

评论数:1

【剑指Offer学习】【面试题57:删除链表中重复的结点】

题目:在一个排序的链表中,如何删除重复的结点?解题思路  解决这个问题的第一步是确定删除的参数。当然这个函数需要输入待删除链表的头结点。头结点可能与后面的结点重复,也就是说头结点也可能被删除,所以在链表头添加一个结点。   接下来我们从头遍历整个链表。如果当前结点的值与下一个结点的值相同,那么它...

2015-07-12 07:24:06

阅读数:3351

评论数:1

【剑指Offer学习】【面试题56:链表中环的入口结点】

题目:一个链表中包含环,如何找出环的入口结点?解题思路  可以用两个指针来解决这个问题。先定义两个指针P1和P2指向链表的头结点。如果链表中环有n个结点,指针P1在链表上向前移动n步,然后两个指针以相同的速度向前移动。当第二个指针指向环的入口结点时,第一个指针已经围绕着环走了一圈又回到了入口结点。...

2015-07-11 06:55:45

阅读数:2831

评论数:1

【剑指Offer学习】【面试题55:字符流中第一个不重复的字符】

题目:请实现一个函数用来找出字符流中第一个只出现一次的字符。举例说明  例如,当从字符流中只读出前两个字符“go”时,第一个只出现一次的字符是‘g’。当从该字符流中读出前六个字符“google”时,第一个只出现1次的字符是”l”。解题思路  字符只能一个接着一个从字符流中读出来。可以定义一个数据容...

2015-07-11 06:51:04

阅读数:3807

评论数:0

【剑指Offer学习】【面试题54:表示数值的字符串】

题目:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例子说明  例如,字符串“+100”,“5e2”,“-123”,“3.1416”及”-1E-16”都表示数值,但“12e”,”1a3.14”,”1.2.3”,”+-5”及“12e+5.4”都不是。   解题思路  在数值之前可能有...

2015-07-10 08:14:23

阅读数:3693

评论数:2

【剑指Offer学习】【面试题53:正则表达式匹配】

题目:请实现一个函数用来匹配包含‘.’和‘*’的正则表达式。模式中的字符’.’表示任意一个字符,而‘*’表示它前面的字符可以出现任意次(含0次)。本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串“aaa”与模式“a.a”和“ab*ac*a”匹配,但与“aa.a”及“ab*a”均不匹配。题...

2015-07-10 08:07:57

阅读数:3514

评论数:0

【剑指Offer学习】【面试题52:构建乘积数组】

题目:给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1],不能使用除法。解题思路例如:A[]={1,2,3}求B[] B[0]=A[1]×A[2]=2×3=6 B[1]=A[...

2015-07-10 07:55:41

阅读数:3277

评论数:0

【剑指Offer学习】【面试题51:数组中重复的数字】

题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。举例说明  例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。题目分析:解决这个...

2015-07-09 08:13:46

阅读数:3982

评论数:0

【剑指Offer学习】【面试题50:树中两个结点的最低公共祖先】

题目:求树中两个结点的最低公共祖先,此树不是二叉树,并且没有指向父节点的指针。我们首先得到一条从根结点到树中某一结点的路径,这就要求在遍历的时候,有一个辅助内存来保存路径.比如我们用前序遍历的方法来得到从根结点到H 的路径的过程是这样的:( 1 )遍历到A,把A 存放到路径中去,路径中只有一个结点...

2015-07-09 08:07:28

阅读数:3510

评论数:3

【剑指Offer学习】【面试题49:把字符串转换成整数】

题目:实现一个函数stringToInt,实现把字符串转换成整数这个功能,不能使用atoi或者其他类似的库函数。题目解析  这看起来是很简单的题目,实现基本功能 ,大部分人都能用10行之内的代码解决。可是,当我们要把很多特殊情况即测试用例都考虑进去,却不是件容易的事。解决数值转换问题本身并不难,但...

2015-07-09 07:47:55

阅读数:3408

评论数:1

提示
确定要删除当前文章?
取消 删除