手记

bobo老师关于备战秋招学习规划的解答

bobo老师关于可不可以一边学<玩转数据结构>课程一边刷LeetCode的解答

bobo老师的解答

原答案粘贴如下

首先对于这个课程的学习我不是特别建议一边学习一边刷Leetcode这是因为这个课程的学习是以经典数据结构的实现为主的。而Leetcode上的问题如果涉及数据结构的话是以数据结构的应用为主的。数据结构的底层实现和数据结构的应用完全是两回事儿。比如栈这个结构是极其简单的就是后进先出而已。但是在具体的应用中如何使用栈是极其灵活的。如果你看Leetcode上Stack相关的难题https://leetcode.com/tag/stack/会有很大一部分是关于“表达式求值”的这其实是一个经典算法通常在编译原理中会介绍称为Shunting-Yard算法。如果只是学过stack然后自己就能想出这个算法其实是不现实的。还需要进一步学习这个算法接触这个算法才能真正掌握这个算法。其实这也是我们学习数据结构的目的——为了能够更好地学习计算机领域的其他算法。如果不知道什么是栈是不可能理解Shunting-Yard算法的


所以这个课程是以学习数据结构的底层原理为主的换句话说通过这个课程的学习你能理解大部分底层数据结构的原理对于重点数据结构如动态数组链表栈队列二分搜索树堆能够做到自己从底层进行实现就已经完全达到这个课程的学习目的了。实际上这部分内容本身也是面试的一个重点如Java中ArrayList的原理是什么红黑树是怎么回事儿快排的原理是什么哈希表是怎么回事儿等等。这些都和Leetcode关系不大同理我的《算法与数据结构》课程https://coding.imooc.com/class/71.html也是这个定位只不过包含一些算法内容排序图论算法等。


对于Leetcode上的问题我的建议是在这个课程和《算法与数据结构》两个课程的基础算法和数据结构已经掌握的基础上再去刷。否则就算做了一些题但是如果连一些基本的算法和数据结构还没有掌握实在不能叫有基础

这里要注意我的这两个课程中包含一些高级内容以面试为目的的话这两个课程中的线段树Trie并查集索引堆可以先不学习


具体刷Leetcode我当然会建议以我的《玩转算法面试》https://coding.imooc.com/class/82.html课程为纲进行刷题。很抱歉我没有看过《剑指Offer》但听说其中很多问题就是Leetcode上的问题所以我觉得应该是没问题的。这个过程主要是建立对一些基础的算法思想的认识。比如很多所谓的“数组”中的题目其实和“动态数组”一点关系都没有而可能是双指针算法或者是排序或者其实需要使用哈希表等等。这些内容如果自己慢慢总结太慢了看我的课程或者《剑指Offer》快速熟悉一些常见的算法思路还是很有意义的


具体Leetcode上的问题以应付面试为目的的话我认为完全没必要碰Hard的问题同时可以把焦点放在400号问题之内。因为Leetcode题号大的问题都是后来Leetcode搞每周竞赛慢慢加上去的。前面的题目相对经典一些。


至于你说的“做下一道ac率一样的题的时候可能仍然要思考最多半小时甚至很久想出解法并总共花1个小时才能做出来”我觉得你自己关键还是要分析到底为什么用了这么长时间。是因为这个算法思想根本没接触过还是编程调试过程比较慢还是其实了解这个算法思想运用不熟练

如果算法思想根本没接触过总结是没有意义见一个学一个。

编程调试过程比较慢总结也是没意义的多编没有捷径。

如果了解这个算法思想运用不熟练可以稍作一下总结之前见过的同样的算法思路拿来好好对比一下

这个问题背后涉及学习方法了。其实学习方法没有定式每个人必须要寻找适合自己的学习方法。整体推荐你看一下我的这篇公号文章https://mp.weixin.qq.com/s?__biz=MzU4NTIxODYwMQ==&mid=2247483836&idx=1&sn=90854aa76507281403e4dd9cd434a12b&chksm=fd8caefacafb27ec78f999fde4f1217c04c6e2ff28cf51fe511d8fa29d484d9281ff91de8c9c&mpshare=1&scene=1&srcid=1129Lc5eLidIW6D8VoKA8Pu4&pass_ticket=RV9qWCQgTyPGHQdgs1SiOhOosKSl5aQPVIIhf5rmqgutcztN9UJySUpu5R0dVEIS#rd 


但是就像我前面说的拿出Leetcode上标签是array的30个问题去总结可能是不可取的。因为都是array的问题他们背后的算法思想很有可能是完全不同的使用array去分类是不科学的。这也是我建议你看我的《玩转算法面试》或者《剑指Offer》的原因整体分类应该是更合理的


最后“目前只要刷了leetcode前250道并且剑指Offer刷了2遍以上明年拿大厂春招也没问题。”这个说法基本靠谱因为我个人认为这个量是够了的。当然能不能拿到大厂春招offer还有很多运气因素包括当下经济形势等等因素。但是达到这个量我认为在算法这个领域从面试的角度看已经够了


不过一定要明白面试不仅仅是算法切记


加油


0人推荐
随时随地看视频
慕课网APP