学完《面试求职第三期》/《数据结构》的看法和对第四期的建议


我本人没太多ACM经验,跟着学校ACM队刷了几百道题,拿过东北区竞赛的银奖,属于有一点点底子的那种,林老师和许老师讲思路那都是没得说的,看得出来两位老师都是大神~。这次看完了整个课程并完成了所有课后作业,写点自己的看法~

这个课程的亮点在于,思路很“人类”,不像求职书和博客直接就是最大子数组和,动态规划这种问题的最“高级”代码,但求职书上和博客上的这类代码,我也不是都能看明白的。林老师对去冗余的理解很深,从最简单的思路入手,一步一步去除算法在时间和空间上的冗余,仅仅学会这一手,这门课就没白来。

然后许老师,声音巨好听,对问题分析很快速也切中要害,在讲贪心的那节课,许老师不知道是有心还是无意,说到“贪心就是动态规划的剪枝,动态规划其实是搜索树加Cache的结果,图的很多问题都是转化成树的问题解决的。”这句话直接点醒了我,因为这句话说明了各种看似不相干的常见算法之间其实是有联系的,这句话像是打通了我的任督二脉一样,因为这句话让我明白,你找到了一个问题的一个暴力解法,通过去冗余和其它算法相联系,很可能也就找打了这个问题的高级解法,也就是沿着这条线,我当天就找了两道LeetCode两道通话过率20%的hard题目,没看题解,看完题目自己分析,从简单解法开始步一步找到了最优解法最终双AC。

要说缺点嘛,有一点,就是讲的是真好,但是对0基础的小白,就不太友好了,我看过ACM队员几乎人手一本的《算法竞赛入门经典》(个别大神除外,两位老师估计在内,膜拜一下Orz),这本书作者刘汝佳大神有句话大概这么说“很多书只注重讲思路,不给甚至不屑于给代码,但是新手是需要通过现成代码一步一步慢慢学的”。两位老师当然属于“不屑于给代码大神”的行列,思路确实讲得好,但是小白没代码总会觉得自己理解不够,而且小白听了思路自己写出代码并不容易。比如林老师讲的从暴力搜索,改成记忆化搜索,然后转动态规划,然后优化空间到O(m),最后再滚动数组优化,反正改来改去我是写了5个多小时==!,小白就可想而知了,而且网上博客也搜不到这样的逐步优化代码,你说小白哭不哭。

总结就是,思路讲的是真的好,对小白也是真的不友善,因为老师都是大神嘛~~我建议第四期在第三期的基础上,讲完课过阵子把代码上传给大家,像从记忆化搜索慢慢优化的动态规划,就把每一次优化的代码都给大家。这样子小白实现过程中写不对也有的参考。这样,整个课程就像一部视频版的算法学习书籍,基础好的听思路,小白学代码,其乐融融,何乐不为?

1 个评论

好好,建议get√

要回复文章请先登录注册

返回顶部