📣 Back to School开学季 - VIP通行证5折优惠!蓝莓、Offer多多同步优惠
12
返回列表 发新帖
楼主: okaytobenot
跳转到指定楼层
上一主题 下一主题
收起左侧

[Leetcode] 刷题时要熟练到什么程度?

🔗
sdszilong 2020-8-22 02:47:08 | 只看该作者
全局:
额,个人感觉啊,首先要明确的是,熟练度远比题量重要得多得多得多得多。

先问自己几个问题:1. 数据结构真的搞懂了吗?比如说堆,链表,等等等等;2.算法搞懂了吗,二分就不用说了,那些复杂一些的DFS之类的;BFS, 扫描线,并查集,窗口指针,对撞指针等等等等,时间复杂度,空间复杂度,

再同意楼上的观点,如果一道题目拿到手了,你能判断出大概是什么样子的level,这就成功了一部分了。
我的经验是,一道题目拿到手了,我先根据感觉去想想怎么做,这个确实是大量做题和归纳总结锻炼出来的,如果想不出来,那就把自己会的那些鬼东西都往里面套一下,看看是否有用,再不会,那也没办法了。
比如说,给你个题,如果不是很明显的label让你知道用什么算法,那你可以考虑下,会不会是用stack,或者是queue和BFS结合,难道是递归,难道是指针,等等,如果还不会,那就跪吧,去看答案去。做到这一步,没人会怪你的,大家都是普罗众生,很正常。

我做题的时候也觉得很恶心,刷过的题,过几天就忘了,模模糊糊记得怎么做,可是呢,就是那些细节会把自己打败。举个例子啊,LC里面那道序列化和反序列化二叉树的题,我用BFS, DFS都做了,不下十遍,之前每次做都感觉差一点,很难一次AC。后来发现原因主要有两个,第一,并不是真正懂得了里面的技巧,因为你看会答案,和你想到答案理解答案,根本是两个概念;看答案的时候觉得,哇靠,无比正确,无比牛逼,所以你抄答案的时候,或者说你趁着刚看完还热乎的时候去写,会觉得很正常,可是呢,这真的还不是你脑子里的东西,所以,你下次写的时候其实又不会了;你在做的时候就应该多想想为什么这样写,多想想一些细节,看看自己是否能够复述出来,如果自己是面试官,自己能否接受自己的解释;再比如说双指针里面的那个蓄水问题,你真能解释得了为什么哪边小移动哪边指针吗,链表有环,找环的入口问题,你会证明吗?为啥快慢指针就是一个走一步,另一个走两步呢,如果另一个走三步,四步,答案会是什么呢?第二个,没办法,就是不熟练,很多东西是奇思妙想,时间长了就忘了;这个我的方法就是归类,然后跟类似以前背GRE一样的经验,一定时间内多次反复强化记忆,归类也是一个很好的方法。

比如说,楼主做过二分吧,知道九章的二分模板吧,哪些题目是rotated的呢,边界到底是怎样的呢;值的二分有哪些呢,wood cuts, paper copy, 大猩猩吃香蕉,轮船集装箱,小男孩吃巧克力等等,这些的区别联系又是哪些呢,这都是一类问题;还有一些要多总结的,链表里面,快慢指针找中点的技巧,对于不同的题目中,到底该怎么处理呢;记忆化搜索和DP基本上都可以互换,如果这道题目不用DP,只用记忆化搜索,你会写吗?由下至上,由上至下,你能搞定吗?这些总结整理的工作,比刷题本身更难,这也是你会在刷题这件事情中脱颖而出的原因。否则,你以为人家公司傻逼啊,给个几百K的package,给一个只会背答案的人。

把题目总结出来,放在excel表格里面,打印出来,零散时间就可以看看。可能只有200道题目,只要题目的title和难易程度,就OK了,看着题目,脑子里最少要想出来,这是个啥,这是咋做的,用的啥知识点,旁边再放点自己的note,需要注意点啥。跟背单词一样,时不时拿出来过一遍,慢慢地对自己要求是一次AC,或者只允许小的BUG存在,前几遍会很痛苦,嗯,还是跟背单词一样。第一遍可能就要一个月,第二遍可能要三周,第三遍可能是两周,后面是一周。我整理了320题,大概3天可以过一遍,不是每道题都要写出来,但是挑出来自己不太熟练的,每天写个四五道最少吧,最少要做到,不用看答案,也能做出来,也许会有一点bug或者是磕磕碰碰的,但是,应该能自己debug完成。

最后一句话就是,DP真恶心,这个是我每次onsite之前都会再一次全文背诵的表格,哈哈。

不要只停留在把题做出来,AC了就满足的阶段,放弃刷题题量之后,应该争取的是对这些题目的深刻理解和熟练。

评分

参与人数 7大米 +8 收起 理由
quincyl + 1 给你点个赞!
ycwinsg + 1 给你点个赞!
wkvictor + 1 给你点个赞!
okaytobenot + 1 赞一个
萝岗汽修老Z + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
mchzh 2020-8-22 03:40:44 | 只看该作者
全局:
https://www.youtube.com/watch?v=eVOkepT32Ag&feature=youtu.be 看看这个大神的讲解,我感觉需要达到他的理解程度才算掌握了

评分

参与人数 1大米 +1 收起 理由
okaytobenot + 1 谢谢分享!

查看全部评分

回复

使用道具 举报

🔗
457368837 2020-8-22 05:06:29 | 只看该作者
全局:
本帖最后由 457368837 于 2020-8-22 05:08 编辑

这个要看你的目标公司是什么

A.如果是想要不惧怕任何公司的面试,包括狗和hot startup
需要能流畅解任何medium题,不能一题出现几个bug;能经过慢慢思考推敲出一半以上hard题(即使有些TLE不是最优解)

B.如果是想进到一个大厂,flagma任意一家或同级别公司
需要能流畅解大部分medium题,不能一题出现几个bug;不属于常规算法思路的medium题,可以不会做 (这个程度,做题层面,总能进至少一家大厂)

C.如果是想进CS行业,找到工作,无论大小厂
只需要easy能解,code干净;能顺利求解一半类型的medium题,允许出现一些bug


P.S. 来自一个3个月冲到leetcode 2100+的同学的小小总结,求加米

评分

参与人数 5大米 +8 收起 理由
亲爱的嘉祺 + 1 很有用的信息!
mchzh + 3 三个 月不停的刷题?
okaytobenot + 1 很有用的信息!
hlbt + 1 赞一个!
andrewpsy + 2 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
waterine 2020-8-22 13:05:51 | 只看该作者
全局:
你要会给别人讲就算差不多了。找个人跟你一起刷,你们各学一道题,弄通之后互相讲解,讲到对方完全明白为止,换两题repeat。
回复

使用道具 举报

🔗
mchzh 2020-8-27 02:34:37 | 只看该作者
全局:
457368837 发表于 2020-8-22 05:06
这个要看你的目标公司是什么

A.如果是想要不惧怕任何公司的面试,包括狗和hot star ...
三个 月不停的刷题?
回复

使用道具 举报

🔗
bruce4j 2020-10-16 04:23:42 | 只看该作者
全局:
现在才开始刷题。。一点思路都没有,来这取取经
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表