中级农民
- 积分
- 101
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2020-11-6
- 最后登录
- 1970-1-1
|
注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
本帖最后由 CodingDream 于 2020-11-6 05:55 编辑
事先声明所有的观点都是我个人小样本经验得出的结论,谨慎参考,后果自负。
首先我的背景,工作8年。在现在的公司也算舒适,但是疫情推动了我一直蠢蠢欲动的心,刷题2个月,海投。
所幸运气+努力,结果不错,成功拿到Amazon/Facebook/Google的 offer(还有些试水的startup就不说了)
当然这里只说Coding轮,System design我会另开帖。
基本上在有计划的刷完Leetcode后,coding轮几乎没有卡过,甚至因为写得太快,被面试官调侃说“你这题是不是做过”的情况。(当然我很实诚,就说见过,你可以换一个题,但是面试官人好基本上就让我直接写了。)
事实上我感觉不管你见没见过,最后写的代码质量过关,time/space complexity过关就可以。
因为签了NDA,我又比较苟,面经就不在这说了,主要说说如何准备。
我开始也是每天刷刷题,定的目标是每天两个medium 一个hard。
后来发现不太现实,主要是有的时候一个题目就会卡很久,楼主又是那种喜欢憋着想,不愿意认输看答案的(基本上都是AC后才看答案)。
这样大概半个月后,感觉刷题并没有太大的提升。楼主痛定思痛,决定调查下并且有计划的刷题。毕竟每天上班+刷题太辛苦,感觉自己也不可能一直过这样的生活。
所以基本上我花了半个月的时间,专门按照类别来刷题。
比如说
- Two Pointers
- Binary Search
- Stack
- BFS
- DFS
- DP
- etc...
每一个类别不用做太多,大概5~10道题目就好。刷的时候你就会感觉到,在你已经知道类别的时候,题目变得比之前简单得多。
也就这个时候我意识到,其实你做题的时候,先开始就要试图去identify这个题目是哪个类别的。
有一些题目有多个解法(比如说有的题可以用stack,也可以用sliding window)
有的题目(一般是hard)是两个小问题组合(BFS+Hashmap)
然后其实你会发现有些hard没有那么难,其实通过一个preprocess可以把这个题转化成medium的。要不就是medium上加了一些特殊条件。(原谅我不一一照例子了,现在实在是不想看leetcode了……)
然后说下我的安排,基本上:
平日是每天2个medium+1个hard
周六周日是4个medium + 2个hard
基本上2个月后,做medium都是15mins,hard的话看hint也大概45mins可以写出来(当然会有卡的尤其DP)
但实际面试上的话,碰到hard面试官也是会给提示的倒是不用多担心。
然后是对有经验的跳槽的工程师朋友,一定不要沉迷于刷题,System design和Behavior对于你最后评级尤为重要,当然coding也很重要(生活不易)。
差不多了,各位有米捧个米场,有人捧个人场。祝诸君刷题,面试顺利。
补充内容 (2020-11-6 14:20):
大家太热情了给这么多米,再多补充点吧。
大家每道题刷题过了,还要多看看Discussion,这里首推lee215大神的解答(代码非常优雅)。哪个one line cult的Stefan千万别学,这哥我觉得面试这么写挂的就是他。 |
上一篇: [讨论]当面试官出了一道2SUM,他到底在考察什么下一篇: 需要刷100道简单题,有什么思路吗?
|