❤️点击上方,选择星标置顶,每天给你送上干货❤️

作者 | godweiyang

出品 | 公众号:算法码上来(ID:GodNLP)

- BEGIN -

周末在地铁上刷知乎,看到个问题:「非计算机专业,想刷leetcode,请问在此之前需要做什么准备?」

https://www.zhihu.com/question/383250014/answer/2004466579

下面高赞回答主要分成了两个派系:

  • 有说按专题来刷的,不要盲目刷。

  • 有说就要盲目刷,不然没有新意和动力。

所以新手到底应该怎么刷题比较好?其实见仁见智,每个人的情况都有所不同,我在这里随便聊聊我的看法。

到底什么刷题顺序好?

以我的拙见,我觉得两种刷题方法都没错,只是应该分两个阶段。

  • 「第一阶段新手入门还是不要盲目刷题,老老实实按专题刷,巩固基础,追求的是知识的深度。」

  • 「第二阶段熟练了后,无论是为了增加新鲜度和视野,还是培养手感,都可以随机刷题,追求的是广度。」

以我自己的经历来说,我本科入学之前也是没有任何计算机基础的,只会基本的word使用吧,家里也是没有电脑的。但在高三毕业的那个暑假,通过自学两个月不到,基本入门了c语言。然后大一入学因为有点c语言基础,再加上数学比较好,就进了ACM集训队。那时候就是按专题来刷的,高斯消元、动态规划、贪心、树、图论等等等等。说实话,那段时间是非常枯燥的,就跟你高中一段时间连续刷解析几何一样,会把你做吐。但是也有个好处,就是熟能生巧,再碰到类似题目,你可以熟练的快速写出代码了。

等大多数算法学的差不多,你觉得够用了,就可以开始随机刷题了,这也跟高中刷卷子一样。这时候你就会将前后一个个孤立的知识点串联起来,形成比较系统的认知。这时候你可能会见到各种奇奇怪怪的题型,各种非常规的解法,这过程中能积累很多解题的经验。熟练了之后,你还会习惯思考一道常规题目有没有其他的解法,能不能用搜索来解图论或动态规划等等。

怎么更好地刷leetcode?

当然大多数人刷leetcode是为了找工作,或者为了考研,这时候肯定没有一两年的时间用来系统训练。所以这时候就得「切合笔试面试的场景,做出针对性的训练」了。那就要去调研面试常考啥题型,你说面试就20分钟给你做题,会让你做一个大图论吗?那大概率不会,除非面试官就想耗着你。那实际常考的肯定也都是代码相对不那么复杂,但是得动很多脑子的题目。比如动态规划,你想出方程的话代码也不会太难写。再比如贪心,你瞬间就能随便猜一个贪心方法,虽然大概率是错的。

所以我觉得leetcode上的题,「先刷常见专题」,dp贪心数据结构这种常考的多刷点,搜索之类的适当刷点,图论啥的见识见识,会点基础的就行,实在不会也不用浪费太多时间。

每个专题刷的差不多了之后,你觉得对自己很有自信了,觉得掌握的差不多了,那就开始随机刷。leetcode有个随机一题的按钮,我就是天天点那个刷的。还可以刷首页的热门100题或者剑指offer系列题,这些都是比较热门的题。虽然面试很少会考这种热门题了,但是重要的是掌握解题思想。

说完刷题顺序,再来说说刷题的时候需要注意啥。很多人看到一道题,想了没两分钟就说我不会做,我想不出来,然后就去看题解了。看完又说这么简单,我会了,然后代码也不实现一遍,直接去看下一题了。这样的后果就是,你以为你会了,但其实那是你看到题解后看懂了而已。而且那不是真的看懂了,你真的看明白了为什么那么思考吗?下次换了一道题让你自己思考,你还是一头雾水。所以我建议「自己先思考个半小时,千万不要看题解」,初期的时候两三小时都不为过,只有自己思考过了才能有所收获。当初我的ACM教练就禁止我们想一会儿就去看题解。实在想不出来了再去翻题解。

看别人的题解也有讲究,不是看一眼觉得你看懂了就不管了,而是要「把自己代入别人的角色」,想想他是怎么想出这个思路的,因为实际面试中可没人给你题解问你这是怎么做的,全得你自己想。想通之后,也别急着关闭题解。「自己去实现一遍」,看明白了和写的出来是两回事。你别看题解自己写的时候又会发现很多细节你还是搞不清,很多trick你都没有注意过。

还得「学会多思考一些解法」,很多题解给的解法并不全,你可能只会一种常规解法就不管了。其实仔细想想你会发现很多别人想不到的妙解,当然这需要在你每个专题都比较融会贯通之后。多会一种解法可以让你在面试的时候更加镇定自若,不会因为一种解法想不出来而直接放弃。

刷题不要光追求数量,还得「追求质量」。彻底弄懂一道题有时候比你看题解草草通过10道题有效的多。我去年面试前仔仔细细刷了100多道题,每道题都写了很多种解题方法,写了详细的推导证明过程,虽然我之前打过ACM,但也好几年了忘了很多,100多题认真做下来能让手感回来了。

「我整理的算法题解:」

进字节一年了,分享一下当初刷的一百多篇算法题解

点击「阅读原文」,可以帮你内推字节跳动各大岗位,加我微信获取一对一咨询服务。

- END -

我是godweiyang,字节跳动AI Lab NLP算法工程师,华东师范大学计算机系本硕都是专业第一。秋招斩获了上海三家互联网大厂SSP offer,擅长算法机器翻译模型加速。有任何问题都可以随时咨询我。

公众号后台回复【内推

我帮你内推字节,加我微信随时查进度催进度咨询问题

公众号后台回复【加群

可以进我的技术交流(聊天)群和内推群。

求求兄弟们点个在看吧,今天的阅读量靠你们了????

如何更好地刷题?谈谈我的一点看法相关推荐

  1. 免费刷题的软件测试面试题库小程序,萌新必备

    现如今,不仅学习卷.考证卷,就连找工作也开始卷得没边了.就如最近几年新崛起的软件测试岗位,很多人为了能过快速通过面试,或者拿到offer,纷纷在面试前几周左右,不惜花重金,购买面试题目,开始疯狂地刷题 ...

  2. LeetCode 到底怎么刷?GitHub 上多位大厂程序员亲测的高效刷题方式

    点击上方"五分钟学算法",选择"星标"公众号 重磅干货,第一时间送达 在众多的诸如阿里.腾讯等大厂之中,最看中面试者刷题技能的大概要数有"链表厂&qu ...

  3. 【力扣刷题笔记】初级算法

    初级算法 数组 1.删除排序数组中的重复项 题目 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度.元素的 相对顺序 应该保持 ...

  4. 1024,给大家谈谈如何搞透刷题 玩转力扣!

    前言 大家好,我是bigsai,好久不见!今天1024,祝大家程序员节快乐,写代码永没bug!今天就给各位小伙伴分享我自己刷题力扣的一些小方法,不一定很有用但是可以参考,祝你更高效的变强! 最近在一些 ...

  5. 小白一路走来,连续刷题三年,谈谈我的算法学习经验

    数据结构与算法应该算是一个比较难的模块,从小白一路走过来,从大一连续刷过好几年题,看过挺多书,踩过挺多坑,也涨了一些经验,姑且在这里分析一波对数据结构与算法 的学习经验,请耐心看完,相信对你会有所帮助 ...

  6. 谈谈考研刷题小程序中的卡片式设计

    谈谈考研刷题小程序中的卡片式设计 大家在UI设计中爱用卡片吗?无论是b端产品还是c端产品,卡片式设计几乎无处不在,卡片已然是我们在UI设计中最常见的样式了,今天我们就来一起详细的了解一下考研题库小程序 ...

  7. Codeforces 刷题记录(已停更)

    Codeforces 每日刷题记录 (已停更) 打'+'是一些有启发意义的题目,部分附上一句话题解,每日更新3题,大部分题目较水. Day ID Problem Tutorial Note 1 1 + ...

  8. 在线答题刷题,创建题库智能组卷,更高效!

    互联网时代的到来改变了许多生活习惯,包括考试在内,已经逐渐专为线上考试,线上考试有着快速刷题.智能组卷.自动分析等多种优势功能.搭建这样的在线考试系统也十分容易,今天就一起看一下在线刷题的一些功能. ...

  9. 兜兜的乐扣刷题算法小记(不停更)

      根据题目,分析数据,找到规律!!!!!!!!题目数量很多,要想基本都会,就必须多练多见.量变导致质变.         "画图"帮助理解 Recursive Tree.     ...

  10. 为了更快的砍柴,每日磨刀:LeetCode刷题半年的思考和总结

    总结与思考我理解是一种行动中思考,看看方向有没有偏离,哪些地方做的好,哪些地方可以调整与优化.PDCA(Plan Do Check Adjust)是我认为很重要的工具.一切都是为了目标服务. 作为程序 ...

最新文章

  1. win7 html 设置成桌面,比比谁酷?!把我的Windows7变成3D桌面
  2. 神经网络debug太难了,这里有六个实用技巧
  3. gc方法写法_清标的内容、技巧及书写方式
  4. 【江苏】2021年下半年软考报考时间及通知
  5. 【Android】多线程下载加断点续传
  6. UVa 10603 Fill (BFS+优先队列)
  7. 使用ASP.NET Core 3.x 构建 RESTful API - 3.3.3 ProblemDetails
  8. Linux系统学习 八、SSH服务—SSH远程管理服务
  9. android4.4安全性,[原创]Android第二代加固(support 4.4-8.1)
  10. 图像处理二:仿射变换和透视变换
  11. layer弹窗在键盘按回车将反复刷新_人生减负指南——iPad Pro+妙控键盘上手体验...
  12. 简单的网站项目开发流程 .
  13. 高中信息技术:信息技术初步、计算机基础、office办公软件
  14. 利用google工具进行关键词研究
  15. hrm系统源码php,开源HRM源码系统下载
  16. 微信商户收款码在哪里下载 -PC端
  17. 网页加速之Prefetching VS Prerendering
  18. 美团、点评app抓包及参数分析
  19. python tokenize怎么用_tokenize --- 对 Python 代码使用的标记解析器 — Python 3.9.1 說明文件...
  20. 项目经理OA选型 Teambition、Worktile、iQuicker、Tower

热门文章

  1. iPhone唯一标识符
  2. 女孩们,当你说没有好男人时请进来看看!
  3. 「SCOI2015」小凸玩密室 解题报告
  4. 学JS的心路历程 - JS应用
  5. 自定义微信小程序导航(兼容各种手机)
  6. Python爬虫开发【第1篇】【urllib2】
  7. BUAA软工第0次作业
  8. java.lang.Error: Unresolved compilation problem: 解决方案
  9. Oracle数据库存储过程 ,去除给定字符串中重复的字符串
  10. 第一节补充: 按键操作(CubeMX加HAL库学STM32系列)