关键
算法面试并不是看你给出的是不是正确答案,而是思考路径,对于问题的细节和应用环境,不断深入。
关键在于解决问题的思路。
甚至通过分析解题方向,得到应该在哪个领域去找。
算法面试的准备范围:
- 各种排序算法
- 基础数据结构和算法的实现:堆、二叉树、图
- 基础数据结构的使用:链表、栈、队列、哈希表、图、并查集
- 基础算法:深度优先、广度优先、二分查找、递归
- 基本算法思想:递归、分治、回溯搜索、贪心、动态规划
技术面试的问题
- 梳理项目中遇到的问题?
- 遇到印象最深的bug
- 面向对象
- 设计模式
- 网络相关;安全相关;内存相关;并发相关;
- 系统设计;
关于项目:
项目来源:
- 实战课程学习
- 创建自己的项目
2.1 自己做小应用:
2.2 自己解决的实际问题:爬虫;数据分析;词频统计;自动充值;自动邮箱通知。
2.3 不是项目的项目:总结
2.4 分享:自己的技术博客;github
通过过去了解你的思考行为方式
- 遇到的最大的挑战
- 最享受的工作内容
准备好合适的问题问面试官
- 整个小组的大概运行模式是怎样的?
- 整个项目的后续规划是如何的?
- 这个产品中的某个问题是如何解决的?
- 为什么项目中会选择某些技术?标准?
- 我对某个技术很感兴趣,在小组中我会有怎样的机会深入?
高级数据结构和算法面试提及的概率很低:
- 红黑树
- 计算几何
- B-Tree
- 数论
- 斐波那契堆