算法与数据结构
这块面试考什么
- 二分查找:判断搜索区间何时能缩小,说明边界如何更新,以及查找或搜索答案时的复杂度。
- 双指针与排序:比较相向指针、快慢指针和滑动窗口的使用条件,解释排序及链表操作中指针的移动过程。
- 广度优先搜索:按层展开搜索过程,区分连通性、最短路径与拓扑排序题,并讨论多个起点的处理。
- 深度优先搜索:用递归描述路径、组合和排列的枚举过程,讲清搜索分支如何展开以及何时结束。
- 二叉树与分治:比较递归和非递归遍历,说明如何拆分子树问题,并利用二叉搜索树的性质推导解法。
- 图与并查集:选择合适的图遍历方式,解释节点之间的连通关系,以及并查集的实现和使用场景。
- 堆与 Top K:解释如何维护较大值或高频项的候选集合,并讨论堆在多路合并和贪心过程中的作用。
- 区间与扫描线:把区间端点转成事件,按顺序分析区间重叠,并说明链表题中各个指针的职责。
- 前缀和、栈与队列:区分区间求和与窗口维护的思路,说明单调栈和单调队列分别保存什么信息。
- 字典树与缓存设计:讲清字典树的组织方式与应用,再用缓存题说明数据结构怎样配合完成操作。
用 GoInterview 怎么练
- 先讲思路,再解释代码:练习时对算法题截图,参考 GoInterview 给出的短答思路与复杂度,再结合完整解法,练习按口述顺序解释代码。
- 接住代码追问:在模拟面试里让同伴追问代码细节;GoInterview 可捕获系统声音并实时转写追问,你再练习说明边界和复杂度。
- 练英文技术表达:把听题和答话语言设置为英文,界面可保持中文,练习用英文说明数据结构选择与解题过程。
想要真人带
想要真人老师带着练算法与数据结构?可以看看上岸算法的相关内容。