应对Java工程师面试中的算法部分,需要学习的重点,非重点章节

应对Java工程师面试中的算法部分,需要学习的重点,非重点章节

应对Java工程师面试中的算法部分,需要学习的重点,非重点章节


bobo老师你好:


我学习算法的主要目的就是一应对中厂, 大厂的算法面试(6年Java经验)

目前课程学了一半了, 有些课程我原来也学习过, 相当于复习, 有些是根本没接触过, 所以想请教一下波波老师, 应对面试的章节, 可以帮忙列举一下吗?


感谢 : )




搜索

复制

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

这个问题我以前回答过,但我找了一圈,怎么也找不到了,再回答一次。


首先强调一点的是,因为算法面试不是一个标准化的考试,所以没有一个规范的“考纲”,各个厂子的不同部门的不同时期的不同面试有可能存在偏差,比如最极端的例子,我听我的学生说过在美国 google 面试遇到网络流的问题。但网络流绝对不是重点。


(不过整体我认为,遇到这种很“极端”的问题,如果你能解决,肯定是加分;但不能解决,面试官应该也很清楚是正常的,不太会减分。当然另外一种情况就是其实部门或者企业没有想着招人,所以就是劝退的。什么手写红黑树都属于这一类。)


==========


下面就属于我认为的重点和非重点:


1)线性查找(重点)


2)选择排序,插入排序,冒泡排序 (重点)


3)动态数组,栈,队列(重点)


4)链表(重点)


5)归并排序,快速排序 (重点)


6)二分查找(重点)


7)二分搜索树(普通的 BST)(重点)


8)堆(重点) 

堆排序,尤其是 O(n) 的heapify (一般)


9)希尔排序(非重点)

但是各种排序算法的稳定性(重点)


10)线段树(非重点,可以先跳过去)


11)Trie (一般)


12)并查集 (一般)


13)AVL 树和红黑树

具体的实现可以不管。在强调,具体实现可以不管,遇到面试让你手写红黑树,你反过来让面试官手写一个给你看。


但是基本的概念要清楚,比如什么叫平衡树,不平衡有什么问题,红黑树不是严格的平衡树,而是达到了黑节点的平衡;红黑树统计意义上性能更优,Java 的 TreeMap 和 TreeSet 底层是红黑树,等等这些东东。


14)哈希表 (一般)

也是,基本概念需要了解。


15)SQRT 分解。非重点,跳过。


16)非比较排序,非重点,可以跳过


17)模式匹配(RK 和 KMP),非重点,可以跳过


18)随机算法部分还没有更新,我主要想将 Knuth Shuffle 和蓄水池抽样两个算法,这两个算法我划分为一般。这两个算法都不难,你要是有需要可以先找其他资料看一下。


==========


图论算法部分:


我单独出过一个课程介绍图论算法:https://coding.imooc.com/class/370.html


在这门课程中:


前七章:重点


第十三章的拓扑排序:重点


九章的哈密尔顿,十一章的最小生成树,十二章的有权图最短路径,我划分为一般。这几部分都是很“标准”的算法,理论上计算机专业的同学应该可以“无碍”的写出来。如果有时间就学习一下。


其他部分:桥,割点,欧拉路径,又想吐的 SCC,网络流,都是非重点,可以跳过。


==========


上面的部分主要集中在经典算法和数据结构(包括相应的应用)上,但是算法面试有可能考察很多算法设计领域的内容。关于算法设计,我之前出过一个课程,但是相对有些老,且视频是使用 C++ 讲解的,我就不推荐了。


整体关于算法设计,我的推荐是:在力扣上刷题。再刷题的过程中,遇到问题,再去有针对性的学习。可以参考我的这篇文章:https://www.imooc.com/article/317697


===========


最后,因为我看你的描述,你准备面试属于社招,强调一下:


1)社招对算法的要求可能并没有那么高(也看厂子和国家),所以请根据自己的实际情况调整;


2)面试绝不仅仅是算法,切记。


提前祝拿到好 offer。加油!:)




  • 小耶哥 提问者 #1

    感谢波波老师

    1. 参加社招, 学习这们课主要目的是复习, 巩固基础,学习一些自学没没接触过的部分, 因为我发现有些题目没有什么思路

    2. 我就在国内面试,就是一些普通的中大厂子

    3. 算法确实只是一部分,深有体会  感谢


    搜索

    复制

    2022-08-16 18:49:53
小鱼0319zn 2023-05-11 03:01:48

+1,我也想知道答案

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
算法与数据结构
  • 参与学习       2583    人
  • 解答问题       1082    个

慕课网算法名师Liuyubobobo,5年集大成之作 从0到工作5年,算法与数据结构系统解决方案

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师