《剑指offer》Java语言实现
文章平均质量分 86
《剑指offer》所有面试题的Java实现。每一个面试题均有着测试样例,实现代码,文档注释以及实现思路。项目所有源码均更新至Github:
https://github.com/Dodozhou/AtOfferInJava
Star_Ship
方向确定,继续前进。
展开
-
《剑指offer》序——面试流程及面试须知
通常,面试是从电话面试开始的。接下来可能有一两轮共享桌面远程面试,面试官通过桌面共享软件远程考查应聘者的编程和调试能力。如果应聘者的表现足够优秀,那么公司将邀请他到公司去接收现场面试。 通常,面试官会认可应聘者的几种编程习惯思考清楚再开始编码。应聘者应先想清楚解决问题的思路,如算法的时间、空间复杂度各是什么,有哪些特殊情况需要处理等,然后动手编写代码。 良好的代码命名和缩进对齐习惯。良好的代码命原创 2018-03-01 16:06:32 · 599 阅读 · 1 评论 -
《剑指offer》Java实现——每天9题——第1天
面试题1 赋值运算符函数 该题目涉及到c++语言的指针特性,java语言暂没想出解决方案。 面试题2 实现Singleton模式 设计一个类,我们只能生成该类的一个实例。 实现代码 public class LazyLoadedSingleton{ private LazyLoadedSingleton{} //private构造方法,防止外部实例化...原创 2018-03-02 20:47:32 · 1640 阅读 · 0 评论 -
《剑指offer》Java实现——每天9题——第2天
面试题10 斐波那契数列 题目一:求斐波那契数列的第n项。写一个函数,输入n,求斐波那契数列的第n项。 测试用例 功能测试(如输入3、5、10) 边界值测试(如输入0,1,2) 性能测试(输入较大的数字,如40、50、100等) 实现代码/** * 求斐波拉契数列的第n项。 * @param n 第n项 * @return 第n项的值 */ pub原创 2018-03-03 22:18:08 · 443 阅读 · 0 评论 -
《剑指offer》Java实现——每天9题——第3天
面试题19 正则表达式匹配 请实现一个函数用来匹配包含’.’和’‘的正则表达式。模式中的字符’.’表示任意一个字符,而’‘表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串“aaa”与模式“a.a”和“ab*ac*a”匹配,但与“aa.a”和“ab*a”均不匹配。 测试样例 功能测试(模式字符串里包含普通字符、’.’、’*’;...原创 2018-03-04 21:16:10 · 418 阅读 · 0 评论 -
《剑指offer》Java实现——每天9题——第4天
面试题28 对称的二叉树 请实现一个函数,用来判断一颗二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。 测试用例 功能测试(对称的树;因结构而不对称的二叉树;结构对称但节点值不对称的二叉树) 特殊值测试(树为null;树只有一个根节点;所有节点值都相同的树) 实现代码 /** * 入口方法,负责进行参数校验和递归调用 * @p...原创 2018-03-05 21:14:49 · 384 阅读 · 0 评论 -
《剑指offer》Java实现——每天9题——第5天
面试题37 序列化二叉树 请实现两个函数,分别用来序列化和反序列化二叉树 测试用例 功能测试(树有多个节点;树只有一个节点;每个节点只有左子树或者右子树;反序列化时序列为空,或者null) 特殊值测试(树为空) 实现代码 //一个全局的计数变量,用于反序列化计数 private static int index=0; /** * 序列化...原创 2018-03-06 22:41:07 · 362 阅读 · 0 评论 -
《剑指offer》Java实现——每天9题——第6天
面试46 把数字翻译成字符串 给定一个数字,我们按照如下规则把它翻译为字符串:0翻译成“a”,1翻译成“b”,……,11翻译成“l”,……,25翻译成“z”。一个数字可能有多个翻译。例如,12258有5种翻译,分别是“bccfi”、“bwfi”、“bczi”、“mcfi”和“mzi”。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。 测试用例 功能测试(只有1位数字...原创 2018-03-09 09:39:23 · 470 阅读 · 1 评论