剑指offer(Java面试准备)
&苏打水&
这个作者很懒,什么都没留下…
展开
-
面试题10:斐波那契数列
题目、斐波那契数列 求斐波那契数列的第n项。 写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项。 斐波那契数列的定义: f(n) = 0 n=0 &nb...原创 2020-01-13 21:32:31 · 371 阅读 · 0 评论 -
面试题9:用两个栈实现队列
题目、用两个栈实现队列 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead, 分别完成在队列尾部插入节点和在队列的首部删除节点的操作. template <typename T> class CQueue{ public : ...原创 2020-01-13 21:25:17 · 108 阅读 · 0 评论 -
面试题8:二叉树的下一个节点
题目、二叉树的下一个节点 给定一棵二叉树和其中的一个节点,如何找到中序遍历序列的下一个节点?树中的节点除了有两个分别指向左、右子节点的指针 ,还有一个指向父节点的指针。 完整代码 public class GetNext { /* *面试题8:二叉树的下一个节点 *题目:给定一棵二叉树和其中的一个...原创 2020-01-13 21:19:56 · 73 阅读 · 0 评论 -
面试题7:重建二叉树
题目、重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,输入前序遍历序列{1,2,4,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并输出它的头节点。二叉树节点的定义如下: struct BinaryTreeNode ...原创 2019-12-19 00:38:09 · 98 阅读 · 0 评论 -
面试题6:从尾到头打印链表
题目、从尾到头打印链表 输入一个链表的头节点,从尾到头反过来打印每个节点的值。 链表节点定义: struct ListNode{ int m_nKey; ListNode* m_pNext; } 分析 解决这个问题肯定要遍历链表。遍历的顺序是从头到尾,可输出的顺序却是从尾到头。也就是说,第一个遍历到的节点最后一个输出,而最后一个遍历到的节点第一个输出。这就是典型的“后进先出”,我们可以用栈实现这种...原创 2019-12-16 23:32:17 · 81 阅读 · 0 评论 -
面试题5:替换空格
题目、替换空格 请实现一个函数,把字符串中的每个空格替换成“%20”。例如,输入“I love you”,则输出“I%20are%20happy”。 分析 方法一,从头到尾扫描字符串,每次碰到空格字符的时候进行替换。由于是把一个字符替换成三个字符,我们必须要把空格后面所有的字符都后移2字节,否则就有两个字符被覆盖了。时间复杂度为O(n的平方)。 方法二,从尾到头扫描字符,每次碰到空格字符的时候进行...原创 2019-12-14 20:57:28 · 80 阅读 · 0 评论 -
面试题4:二维数组中的查找
题目、二维数组中的查找 在一个二维数组中,每一行都按照从左到右递增的顺序排列,每一列都按照从上到下递增的顺序排列。请完成一个函数,输入这样的一个二位数组和一个整数,判断数组中是否含有该整数。 例如下面的二维数组就是每行、每列都递增排序。如果在这个数组中查找数字7,则返回true;如果查找数字5,由于数组不含有该数字,则返回false。 1 2 8 9 2 4 9 12 4 7 10 13 6 8...原创 2019-12-13 01:08:04 · 68 阅读 · 0 评论 -
面试题3:数组中重复的数字
题目一、找出数组中重复的数字 在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了多少次。请找出数组中任意一个重复的数字。例如,如果长度为7 的数组{2,3,1,0,5,3},那么对应的输出是重复的数字2或3。 分析 如果数组中的数字都在0~n-1的范围内。如果这个数组中没有重复的数字,那么当数组排序之后数字i将出现在下表...原创 2019-12-10 23:29:34 · 109 阅读 · 0 评论 -
面试题2:实现Singleton(单例)模式
一、题目 设计一个类,我们只能生成该类的一个实例。 二、分析 只能生成一个实例的类是实现了Singleton(单例)模式的类型。由于设计模式在面向对象程序设计中起着举足轻重的作用。 单例模式的实现主要通过以下两个步骤: (1)将该类的构造方法定义为私有方法,这样其他地方就无法通过调用该类的构造方法来实例化该类的对象,只有通过该类提供的静态方法来得到该类的唯一实例; (2)在该类内提供一个静态方法,...原创 2019-12-03 00:35:08 · 224 阅读 · 0 评论 -
面试题1:赋值运算符函数
一、题目:如下为类型CMyString的声明,请为该类型添加赋值运算符函数。 public class CMyString { private char m_pData[]; public CMyString(char pData[]) { //输入的是字符型 m_pData = pData; } public CM...原创 2019-11-29 01:13:35 · 97 阅读 · 0 评论