力扣,刷多少算够?
刷的少,担心面试时遇到没见过的题目;刷得多,都快要刷吐了,这个日子什么时候是个头?
换个角度想想,按数量来刷,一定是正确且高效的吗?不!按数量来刷,总有你刷不完的题目,刷得越多,越记不住,心里越没底。
正确的方式:尝试按类型来刷题,比如按数据结构分类,或者按算法分类,每几天专门攻一类题,把这类题刷懂刷透,再刷下一类。这样,每类刷多少题,要刷哪些类,你是心里有数的。
说点你可能不知道的事情:
- 为什么网上讨论一提算法,总是要说那些难的算法,比如动态规划、贪心算法等?因为只有大厂才会考这些,面试者说这些才能体现自己厉害啊!要是自己在网上说面试题都是超简单的递归、循环的时候,会不会担心别人鄙视你没水平?久而久之,网上就只能听到一种看法:面试考的算法,都很难!
因此,很多人在刷题的时候,简单的感觉没用,难的又不会,于是焦虑得不行。
事实上,绝大多数公司面试,不说那些大厂,即使面试数据结构和算法,其实重点关注点还是在基础知识,比如数组和链表,稍微难一点就是二叉树的某种遍历;具体操作上,就是基本的遍历、递归和哈希等操作。求职定目标的时候,要优先保证基础知识的掌握,即时大厂的难题,其实更多是不同算法的组合应用,能够解决具体的、实际的问题,并非是让你发明新算法。之前面试中,作为面试官我让面试者先用代码创建一棵树,结果大多数人连树的结点定义都不会,这可都是书本上的东西。如果这些最基础的都不会,刷力扣又有什么意义呢?
这么多数据结构和算法里,有一个必须提的是哈希。这个是超级简单又实用的技术,少有的能把O(n^2)的问题,轻松降到O(n)时间复杂度的方法(或者说把O(n)降到O(1),之所以不这么说,是因为面试中面试官一般不会出这么直白的问题,总会绕点弯子)。这一点,缺少项目经验的人体会不到,只会认为这是个普通的技术而已。
- 另一个不面复杂算法的原因:面试轮次少的公司,比如只有两三轮,真正的技术面试可能只有一两轮。在每一轮技术面试中都会覆盖到很多东西,比如编程语言使用、项目经历等,其中算法大多数时候只有10~20分钟的时间,面试官不可能给你给你来一道半小时都解不出来的难题,否则时间浪费了,且没考察出什么东西。
因此,刷题先优先侧重基础类型的题目,最后再往复杂的题目上靠。如果时间不够,直接把难的题目放弃,也没什么大不了的。
有刷八股文的需求,可以关注【八股精】网站。
#力扣刷题##求职反焦虑##求职干货#