查看: 18595| 回复: 33
跳转到指定楼层
上一主题 下一主题
收起左侧

[其他] 刷题时候的一个小经验

   
全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
这是本人刷了600+题之后才想到的,觉得我的这种刷题方法对我的提高还是比较有效的,分享给大家。1. 写完题目稍微过一遍,想想corner case之后,直接提交,不要用test case来检验程序。刷题和面试的目的不同,面试的时候目的是程序尽可能正确,所以要用test case来检验一下。但刷题的目的之一就是要暴露一下每个人评直觉写程序时容易出现的错误和死角,有的是思路上的,有的是习惯上的。我觉得我们写程序的时候,其实并不是真的面面俱到的想到了所有的可能性,从而确保程序bug free,而是经过大量刷题之后脑海中形成了某些套路。刷题的过程就是检验脑海中这些套路的准确性,以及适用范围。出了错误,正是调整纠正脑海中的错误套路的机会。
2. 每一道题都把犯下的所有错误标记出来,并给错误分不同的类别并一同标记。比如,我把所有的错误分成四类,这四类错误由难避免到容易避免来排列:
第一类错误:思路错误。就是说这道题的解法没有能够独立想出来,看了答案才会写。或者说自己的程序写得太长,看了别人的解法有更简洁的写法。一般这种情况下,按照答案的思路重新写一遍,并且标记一下,这个程序是在看了答案之后重新写得。其实这个严格的说不能叫错误,不过我就把这种情形也和其他错误标记到一起了。
第二类错误:corner case错误,程序整体思路是对的,只是漏掉了某些特殊情形,这些情形一旦想到了,很容易改正(也就是说没有算法上的困难)。这种错误属于思维习惯上的盲点,是很容易反复出现的。比如parse带括号的算式的题目中,万一算式不带括号的情形等等。当复习的时候,这种错误是最值得回味并避免的。
第三类错误,算法具体实现时,出现的比较大的bug。还拿parse表达式举例,比如判断括号内的内容是否结束,忘了同时判断整个表达式是否结束。if语句只列举了一个条件而漏掉了另一个条件。这种错误也和编程习惯有关,很容易重复性犯的错误,很值得标记出来。
第四类错误,Oh-Shit错误。就是说,发现错误时,通常会大喊oh-shit的错误:)比如没有return结果,比如while(index < n)循环中,忘了index++等等。这种错误其实发生的原因往往是题目比较难的时候,大脑的大部分CPU都用来想解法了,留给coding的脑力不够导致的。因为错误本身比较愚蠢,即使标记出来将来也很难彻底避免的。但我发现如果标记一下的话,就会对这种错误有个印象,知道往往在什么地方容易出这种错误,以后写程序时可以有意识地去避免。而且,以后写完程序简单过一遍的时候,也会有的放矢地去查这些地方。
这样做,当复习时间不够的时候,可以比较有效率地重温一下刷过的题目。重新刷一遍刷过的题目以提高熟练度,当然是最好的方法,但当时间不够的时候,这种方法效果也很好。特别是第二类错误,我重温的时候,常发现还是漏掉了当初漏掉的情形。

评分

参与人数 91大米 +168 收起 理由
Abdelazer + 1 给你点个赞!
fatkirby + 5 很有用的信息!
alicia_qianqian + 2 给你点个赞!很有道理
flyingrosefish + 1 很有用的信息!
mandymm2013 + 1 谢谢分享心得,很有用

查看全部评分


上一篇:LEETCODE HARD在什么情况下才有必要刷?
下一篇:2019.6.25 leetcode最近6月最新的公司分类题库

本帖被以下淘专辑推荐:

全局:
本帖最后由 gundamkeroro 于 2019-7-4 11:23 编辑

差不多 我也差不多这样的分类 我的leetcode分类标签叫做:
不会,
容易错,
容易忘,
一把过
回复

使用道具 举报

推荐
 楼主| optimistman 2019-6-27 00:21:17 | 只看该作者
全局:
bazingaa 发表于 2019-6-26 23:27
请问楼主是如何做标记的呢?笔记本写下来嘛?

我就在leetcode网站写程序的地方直接当comment来写,然后再提交一下就在网站上记录下来了。 :)

评分

参与人数 3大米 +3 收起 理由
b289zhan + 1 赞一个
LlewynZhang + 1 赞一个
bazingaa + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

全局:
哈哈,写的很好,降低错误的方法就是熟练掌握套路,增强每次写同一类题的一致性和稳定性。
回复

使用道具 举报

🔗
ygmm 2019-6-26 13:31:04 | 只看该作者
全局:
总结的相当好!
回复

使用道具 举报

🔗
iCaren 2019-6-26 17:40:33 | 只看该作者
全局:
价值六百道题的经验,学习了
回复

使用道具 举报

🔗
xiongml81 2019-6-26 18:03:13 | 只看该作者
全局:
good point, thanks
回复

使用道具 举报

🔗
bazingaa 2019-6-26 23:27:02 | 只看该作者
全局:
请问楼主是如何做标记的呢?笔记本写下来嘛?
回复

使用道具 举报

🔗
miaoxinhuili 2019-6-27 02:55:04 | 只看该作者
全局:
准备照着做一下看看在自己身上的效果
回复

使用道具 举报

🔗
downeysoul 2019-6-27 04:04:06 | 只看该作者
全局:
很受益多谢
回复

使用道具 举报

🔗
道上的锅 2019-6-27 05:03:28 | 只看该作者
全局:
谢谢~ 总结的 很实用
回复

使用道具 举报

🔗
AvalancheLLK 2019-6-27 05:04:50 | 只看该作者
全局:
Oh-Fxxk 算哪一项里呢(手动滑稽)
回复

使用道具 举报

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

本版积分规则

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