查看: 3926|回复: 16
收起左侧

[其他] 个人的新手刷题经验

    |只看干货
本楼: 👍   100% (26)
 
 
0% (0)   👎
全局: 👍   98% (67)
 
 
1% (1)    👎

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

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

x
通过三个月的刷题,最近的几个coding round都还是过了的,所以自己感觉个人的刷题经验也是有一些可取之处,分享给大家供大家参考,当然了大家各有不同,我也是一家之言,仅供参考,期望对于大家的刷题能够提供一下帮助。

首先说明一下自己的背景,我只用python, 在三月份刷题以前自己能写code,能看懂code,知道递归和迭代,能写函数,能写一些简单class, 能理解call by reference 还是call by value, 算法的时间和空间复杂度能大概理解,知道数组,链表和哈希表,但也就仅此而已了。各种算法自己是基本不懂的,二叉树,graph, dfs, bfs,之类的知道但是基本不懂。总结一下呢就是一个理工科学生,逻辑思考能力还可以但是算法基本就是小白一个。

说完了背景讲一下自己的经验:
  • 刷题更多是个记忆的工作,对我而言做过的题目不一定会,但是没做过的基本肯定是不会的,所以我的刷题原则就是记忆,leetcode的大厂高频题还是很准的,我面的几次都是高频题,我希望自己coding round的结果是如果是见过的自己能做出来,没见过的努力去做,做不出来也没什么可惜的。正因为这个我的目标就是记住,一遍记不住就都做几遍,同一道题刷了几遍之后慢慢地就能记住了,而自己之前记住的题目也是要偶尔去复习一下确保自己还是记得的。
  • 记住也不能只是机械的去背,还是需要一些理解这样才能记得更快更牢。由于我的背景,刚开始的时候基础太过于薄弱,所以一开始是看https://github.com/youngyangyang04/leetcode-master, 我觉得这个讲得很好,帮我补足了很多基本知识。刚开始看的时候还是很吃力的,但是相信我多看多做(对的就是看完了他的解答后自己去做一遍,你会神奇的发现很多时候就算自己刚看了答案但是让自己再写一遍也是写不出来,刚开始会有些沮丧和怀疑自己的脑子,但是真的多做多做会看到自己的提高,所以不要怀疑自己,一开始不会很正常,coding也是一个熟练工种)。
  • 不同的解法记住的难易程度不同,同时呢不同人对于不同的解法理解力也不一样,所以呢如果一道题我不会做先去看leetcode官方解法,官方解法如果感觉一般,我就去看https://maxming0.github.io(强烈推荐小明,他的很多解法在我看来更好理解和记住),再有就是去看discussion里面,有时候真的有很好的很好记的解法,举个例子1539(https://leetcode.com/problems/kth-missing-positive-number/)这道题目这个解法(https://leetcode.com/problems/kt ... lution-use-stepping)又巧妙又好记。当然这个不是最优解,我感觉做出半优解总是好过于做不出来的。所以建议就是花一些时间去找一下自己能理解能记住的答案
  • 尤其是用python,有些解答方法真的是很巧妙,但是个人感觉呢对于新手那些太过于巧妙的解是记不住的,稳扎稳打确保自己能记住才是比较关键的,有时候那些巧妙的解法面试官也不能理解反而要多花面试时候的时间去解释
  • 同一个算法不同人有不同的写法,就算是leetcode官方的解答也是不同人写的,所以自己一定要找一个自己的方法,而且让自己每次都是那个一写法,这样的好处的是减少要记忆的东西。举个例子,二叉树的前序,用迭代的时候有的写法是有返回值的,有的是没有用一个单独的list去收集,结果都是一样的,在记忆的时候就是找一个自己好理解好记住的解法,然后在以后都是用那一个方法,就算别人有的别的写法,也要改成自己的写法,这样减少自己需要记住的量。还有graph题,有人喜欢命名visited, 有人喜欢命名seen, 找一个自己能记住的然后每次都用那个,减少自己记忆的成本。
  • 不求甚解,很多时候有些题目就是不理解,花了很多时间就是不明白。在这种时候我的建议就是先把答案记住,先能写出来再说,有事没事去多看看,不要逼自己一定要理解,有时候那个时间都看几道题的收益会更大。而且更多的时候这是一个熟悉和悟道的过程,也许某一天你突然就能理解,也许你就是不能理解,但是只要你能把题目做出来,大概方向讲出来就够了,毕竟这个是为了面试。就像我现在对于很多二叉树的迭代解我还是不理解,但是我能记住和写出来,面试的时候讲一个大概的思路,这样就够了。还有就是链表题我刚开始就是不理解,但是到后来做多了就有些理解了,偶尔自己也能写出答案了,这个过程是一个很难说清楚的过程但是有一天突然就觉得自己明白了一下。然后就是有些题你就是没有pass,就是80/90过了,这个时候八成是一些edge case没有考虑到,这时候也不用太纠结,面试的时候都是一些基本case, 基本case能过足以,没必要100%,有那些时间多看几道题来得收益多多了。
  • 刷题的时候我一般就是看了题目五分钟以内没想法就直接看答案,缺少了思考,但是太多算法题本身就不是我们能思考出来的,就是来记住的,leetcode的会员先买上,节约自己看答案的时间。
  • 最后就是刚开始看题刷题的时候会怀疑人生怀疑自己的脑子,放平常心,多看多刷,慢慢地会有感觉的。毕竟我们追求的是去那些大厂当螺丝钉,也没有想着要提出惊天动地的算法,所以我们的脑子还是够用的,需要的就是记住还有重复地去复习和重复地记忆。


先写到这里,希望对大家的刷题有些帮助,如果再想到新的点我会再更新。




补充内容 (2022-06-23 07:33 +8:00):
关于知识点和模版,自己有些整理,等忙过了这一阵子分享给大家
关于刷了多少题,大概300多,107 Easy, 210 Medium, 15 Hard。hard的题目真的和其他的不是同一级别的,题很难理解,code又长,真的是很难记住,一道hard花的时间可以看好几道easy或者medium题了,所以我一般就是放弃了,除非是tag高频题,否则我都没有去看。拼一把人品不会被抽到,要是真的碰到了也没办法,能力有限。

另外加两个经验:
9. 自己整理一个做过的题目的google sheet,标注一下哪些是记住了哪些差一点哪些差很多,在睡觉前可以自己过一下,整理一下思路,如果卡住了就及时看一下答案,催眠效果极好,看不到10道题保证困得不行不行得了😴
10. 在找答案的时候如果超过了30行(我用的python), 那个答案我一般直接略过,太长了基本是记不住的,而且很多时候如果太长了要么是有别的更好的方法(可能效率之类的会差一些)要么就是这道题目太难了(与其花太多时间在一道题目上倒不如多看几道题)

评分

参与人数 27大米 +29 收起 理由
sanlolness + 1 很有用的信息!
Monica_JW + 1 很有用的信息!
Jessie2010 + 1 给你点个赞!
topnessman + 1 很有用的信息!
abawlau + 1 赞一个
NiDpoint + 1 赞一个
denistek + 1 给你点个赞!
csy_271 + 1 赞一个

查看全部评分


上一篇:java要不要转python刷题
下一篇:如何看出一个题有Greedy的解法
本楼: 👍   100% (8)
 
 
0% (0)   👎
全局: 👍   96% (195)
 
 
3% (7)    👎
每刷一题约等于赚了3000~5000刀,每天刷题每天暴富,动力满满
回复

使用道具 举报

YuzuWei 2022-6-23 13:01:05 来自APP | 显示全部楼层
本楼: 👍   100% (6)
 
 
0% (0)   👎
全局: 👍   100% (76)
 
 
0% (0)    👎
心路历程简直和我一模一样了…自己没聪明到能想出来算法,就看答案,看完了自己写还是不会,就多写几遍,总有开窍的时候,现在dfs/bfs/stack这几种比较基础的一半没啥问题,dp也能写个磕磕绊绊,三个月刷了170多道题。

一开始刷题我也很痛苦,easy题都想不出来,一磕就是半个小时一个小时,然后在女朋友的提点下我悟了,我就是菜,我就是笨,还是得学会和自己的脑子和解🥲
回复

使用道具 举报

woflow 2022-6-23 07:58:22 来自APP | 显示全部楼层
本楼: 👍   100% (5)
 
 
0% (0)   👎
全局: 👍   100% (32)
 
 
0% (0)    👎
acheirs 发表于 2022-06-22 10:09:42
有用,点赞。很多时候我刷着刷着就陷进去了,一整天一个题目。
如果是为了功利的找工作,这种情况早看答案,5到10分钟没思路就看答案了,再久就不值得花时间去想了
如果是为了自己想思路找乐子那就随你高兴了
回复

使用道具 举报

acheirs 2022-6-23 01:09:42 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   91% (681)
 
 
8% (65)    👎
有用,点赞。很多时候我刷着刷着就陷进去了,一整天一个题目。
回复

使用道具 举报

zyjoyce 2022-6-23 01:18:39 来自APP | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (2)
 
 
0% (0)    👎
求问有没有过知识点的经验分享呀
回复

使用道具 举报

Marcella 2022-6-23 03:16:15 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   95% (136)
 
 
4% (6)    👎
请问是否有算法模版值得分享呢?
回复

使用道具 举报

bruce2021 2022-6-23 03:22:52 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   86% (13)
 
 
13% (2)    👎
我也是看过代码随想录
回复

使用道具 举报

donkeyestt 2022-6-23 03:29:59 来自APP | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   85% (48)
 
 
14% (8)    👎
赞同。感觉lz思路是对的,不理解就死记硬背。练多了则熟能生巧。

回复

使用道具 举报

totoro12 2022-6-23 05:57:00 来自APP | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (20)
 
 
0% (0)    👎
楼主可以分享下三个月一共刷了多少题吗
回复

使用道具 举报

yswang9024 2022-6-23 10:43:45 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (70)
 
 
0% (0)    👎
自己拿笔画画写写比电子版本的记忆效果好一些
有时候以为自己明白的地方 跑不出来才发现哪里有问题

楼主写得情真意切
“知识点和模版,自己有些整理,等忙过了这一阵子分享给大家”求分享呀
回复

使用道具 举报

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

本版积分规则

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