首页
总结自«剑指offer»
真东西&技术广度&表达能力
-
真东西
任何一个知识点必须要真正的去练习并且要有好的总结,不能只看不练。
-
技术广度
一定要懂的多,懂的定义是指对一个技术要求掌握其用法、了解其原理和熟悉其应用场景。
-
表达能力
在表述时需要注意术语一定要专业以及语言一定要精简明了。
简历项目经历书写
使用一两句话描述项目的主要功能,然后介绍自己在项目中的角色,解决了什么问题,使用什么方式解决,比别人的方法相比有什么优势(尽量用数据来说明)。
STAR原则
- situation:简单的项目背景
- task:自己完成的任务
- action:为了完成任务自己是如何做的
- result:自己的贡献(使用数字进行说明)
项目经历会被问到的问题
- 你遇到的最大的问题以及如何解决?
- 你从这个项目学到了什么?
代码书写
基本要点
- 主动提问认真思考
了解题目的要求,展现自己的沟通能力,尽可能的去发现暗藏的陷阱,写代码之前要有完整的思路。
- 正确性和鲁棒性
良好的时间复杂度和空间复杂度、边界条件测试、非法输入错误处理、算法优化、问题延伸。
- 代码书写规范
命名合理,布局清晰,不得马虎随意,需要让人一目了然。
算法题实例
如何求树中两个结点的最低公共祖先?
- 问题1:如果为二叉搜索树?
回答:因为两个结点一定分别位于最低公共祖先的左右子树,根据二叉搜索树的性质,找到第一个值位于两结点值之间的结点。
- 问题2:如果是普通的二叉树但每个结点都有一个指向父结点的指针?
回答:该问题等价于,求两个链表的第一个公共结点问题。
- 问题3:如果只是普通的树?
回答:先求出从根结点到两个结点的路径,之后比对两条路径,求出最低公共祖先。