算法该不该刷?如何高效刷算法?

2023-11-02

一、算法该不该刷?

最近有小伙伴向我咨询一个问题,就是算法该不该刷,该如何刷算法呢?这个问题可谓太大众化了,只要你去某乎、某度搜索一下相关的解答,会有无数种回答,可见这个问题困扰了多少学习计算机的同学们,但不管回答有多少种,总结一句话就是“算法必须刷!”。

当然,这个回答其实也并不绝对,算法也可以不刷,在我看来取决于两个原因:

其一,计算机出来工作也分很多种,有前端、后端、算法、测试、运维、大数据、人工智能、嵌入式等很多方向,不同方向的学习内容也不一样,因此算法也并不是所有类型的工作都得学习的。

其二,如果你的志向没有那么远大,只是想能够找份工作上班,而不追求公司的规模的话,那你也可以不刷算法,因为正常的小公司对算法的要求并不注重,他们想要的是能够入职很快就可以干活的人,只要你能够敲代码,那他们就会录取你;而一些规模比较大的公司,他们对算法的要求还是比较强的,因为大公司注重求职者的基本功,在他们看来算法是可以综合考察求职者的基本功是否扎实,至于技术栈是否扎实他们其实并不是重点(当然技术栈功底也是比较看重的),因为他们有财力和能力来培养员工的技术能力。上述表述是针对于应届生和初级程序员对于求职找工作而言的,中高级程序员另说。

综上所述,我认为什么样的人应该刷算法呢,未来从事的工作譬如算法、后端、大数据这类的工作,需要算法的工作门类,并且你所追求的公司是属于中大厂的,那么算法这一关是一定要过的,这些公司一般在面试前会有一次笔试,笔试就会考察算法,一般考察2道,笔试过不了的话正常连面试机会也没有的。当然考察的算法也不会很难,一般都是简单到中等的难度,很少会有困难的难度,正常面试比较难的题目也就在LeetCode中等难度题目中的中等难度那样。当然越大的公司,对于算法的考察会越注重,比如腾讯、阿里、字节等这些一线大厂,通常会有三次以上的面试,而每次面试都可能考察一道算法题,可想而知算法的重要性。

在我看来,会问“算法该不该刷”这个问题的人一共有两种,一种是刚入门计算机没多久的人,还有一种是刷了几道算法觉得有难度想放弃的人。因为我本人就是经历过这两个阶段。一开始的时候,我刚入门计算机,在了解到面试需要考察算法这里的时候,我就开始怀疑,我学的是Java后端开发,明明是敲代码做开发的,又不是算法工程师,为什么要刷算法呢?所以我有了“算法该不该刷”的问题。再后来,我刷了几道算法,一开始刷算法特别难受,因为没怎么接触过,刷起来完全没有思路,而且在刷算法的时候,敲代码其实也会有点卡壳,这才了解到自己的基本功也不是很扎实。碰了壁,遇到了麻烦,想放弃,自然就会想“算法那该不该刷”这个问题,总想着避开算法。但之后通过不断的面试发现,算法不刷还真不行。因为面试一些中型公司的时候,连面试前的笔试都过不了,更别谈拿到面试机会了。所以后面就把算法刷了起来,虽然有些难度,但刷了一些题之后,适应了其实觉得,也没有那么难了。

总结:算法该不该刷?算法必须刷起来好吧!

二、如何高效刷算法?

相信很多小伙伴都会有这么个疑问,我知道算法的重要性了,但我却不知道算法该如何刷,这么多算法该从何下手,哪些算法必须刷,哪些算法又是可以不刷的?

那么,接下来的内容我将把我从0到1刷算法的一些经验和途径分享给大家,希望看到这篇文章的小伙伴可以少走些弯路,那么我们直奔主题:

  1. 刷算法最重要的不是敲代码,而是思路。很多小伙伴在拿到题目的时候第一反应就是敲代码,边敲边想。其实这是错误的,我们拿到题目第一时间应该是想思路,而不是着急做题。我们可以花一些时间把思路想一想,在确保思路想通的情况下再去敲代码,这样做题就会比较顺畅。就像写作文一样,拿到作文题目不是直接下笔,而是构思。

  1. 刷算法一定要分类刷。什么意思呢,就是你可以按照算法的分类进行刷题,算法分字符串、链表、栈、二叉树等类型的题目,这段时间只刷字符串,待字符串刷的差不多的时候再开始刷链表类题目,这样子刷题的效率会事半功倍。反之刷题不按分类刷,随意刷题的话,可能会事倍功半。因为每一种类型的题目都有对应的一些套路和方法,刷多了就能举一反三了,一拿到此类题目就知道该如何下手。

  1. 刷算法一定要刷多遍,不要只刷一遍。当我们刷算法的时候,既要学会这道题的思路,又要会敲代码。而我们的大脑对某一件事的记忆力会随着时间的增加而下降,所以刷算法一定要多刷几遍,这样才能保证我们刷过的题可以成为自己大脑题库中的题,而不是题库中的过客。

至于多刷几遍也是有方法的。拿我的方法来举例,一般我会刷3遍,第一遍是只刷思路,不敲代码,拿到一道题目的时候,我会直接看思路,思路可以明白的情况下再去看代码,代码可以看懂的情况下,我会将这道题整理到我的博客上,用自己的话把这道题的思路记下来,然后把代码也copy到文章中,这道题就算刷了第一遍。

等这类题目刷完的时候,我会把所有的题目再刷第二遍,注意是刷完此类题目的时候。第二遍我就不会看思路,只看题目,然后自己想思路,想好之后去把代码也实现了。第二遍我会专门记录成一篇文章,文章中记录着我刷每一道题目的感受,比如说“此题刷题顺利”、“此题思路不顺”、“此题代码不顺”等。这样就会方便我第三次刷题。

接着过段时间后,我会开始第三遍刷题,把第二遍刷题时不顺的题目再刷一遍,这样就将此类算法题刷的差不多了。

注意:一定要分类刷题,包括第二遍第三遍也是分类刷题,一定要总结刷题方法和套路。

  1. 刷算法一定要总结,不能只有输入而没有输出。就像第3点中我说我的刷题方法一样,刷过的题目输出出来,方便以后的复盘和总结。如果只靠输入,而不输出的话,大脑再遇到刷过的题目的时候,可能也都没什么印象了。

  1. 刷题一定要循环渐进,刚开始的时候先刷简单的,然后再刷中等,再到困难。大家在刷题的时候可能会存在一个误区,就是一上来就刷难题,以为如果我把难题都刷会了,那简单的题目也就不在话下。其实不然,每道题都有各自的方法,他们相互关联但又各自独立,每道题目的思路都不相同,所以难得题目会解并不代表简单的题目也可以解决,反而在刷困难的题目的时候,会因为毫无思路而怀疑人生,最后刷题刷的痛苦不已。不要问我怎么知道的,问就是经历过。

  1. 刷算法题不建议拿大量的时间进行刷题。刷算法题可以每天刷一两道,后面适应了可以一天几道的刷,但前提是不要拿大量的时间花在刷题上,毕竟从事的工作不是算法工程师,还是要以主线学习内容为主。每天花一两个小时来刷算法就完全可以了,把算法和其他学习内容穿插着来进行。

  1. 掌握数据结构这门课。数据结构这门课还是很重要滴,如果没学过的同学或者学过但学的不是很好的同学,建议重新学一遍,但我建议不要一次性把整门课都学完,而是边学边刷题。比如刷到链表类题目的时候,可以把链表那一章的数据结构看了,然后再去刷题。刷题刷到哪,数据结构学到哪。这样会事半功倍。

以下是一些我刷题的途径和网站,大家可以拿去参考:

  1. 《剑指Offer》这本书,里面的题目都是经典题目,面试常考的,必须刷完。

2.LeetCode网站,里面有大量的算法题可供大家刷,但并不是所有题都要刷的,下面两个刷题网站可谓精品中的精品,我都不舍得分享出来,但为了大家可以快速进步,我还是决定与大家一起进步。

(1)Leetcode高频题:https://www.nowcoder.com/ta/leetcode

(2)各大公司面试高频题目(含考察频次):https://codetop.cc/home

3.数据结构:

时间紧的同学可以只看这个常见数据结构和算法知识点:https://b23.tv/pne6moZ

数据结构基础:https://b23.tv/al18Y8f

4.剑指offer对应的视频讲解:(个人觉得讲的不是很好,不如直接看题解)

https://m.bilibili.com/video/BV1ZK4y1b7Xn?from=search&seid=15576281624721013887&spm_id_from=333.337.0.0

5.数据结构几大排序查找算法是必知必会的,不论公司规模大小都会考到的,诸如快速排序、归并排序、二分查找等。

八大排序算法_Java运动猿的博客-CSDN博客

四大查找算法_Java运动猿的博客-CSDN博客

总结重点:

1.先掌握解题思路,代码部分可以留着第二遍,记得整理。刷算法过程中遇到诸如红黑球,链表栈等数据结构知识,也要整理下。

2.刷算法的时候一定要刷多遍,刷剑指offer和牛客网148道leetcode。

3.容易的,会的先刷,难的留着第二遍或第三遍再去理解,大局为重。

4.先刷思路,思路能懂的前提下再去看代码,或者通过看代码辅助理解思路也可以。要先会说怎么解,然后再写代码。

5.刷一题整理一题,一定要整理,不整理很容易忘,用自己的话或者代码再输出一下,标记好需要注意的点,便于后期回顾复盘。

写在最后:
相信看到这里的小伙伴们都已经踌躇满志,迫不及待地想去发现新大陆了吧哈哈!此篇文章是我踩了无数的坑、碰了无数的壁总结出来的一些经验和刷题门路,可谓呕心沥血。别问我刷题的过程有多艰辛,问就是总结经验的时候真的很爽。希望这篇文章可以帮助到有需要的小伙伴们,早日踏上理想的航线。如果有需要《剑指offer》、《大话数据结构》这两本电子书的,可以关注我并私信给我,我会分享给你的。

最后的最后:码字不易,如果你觉得此篇文章对你有帮助的话,还望动动手指点个赞支持支持我吧!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

算法该不该刷?如何高效刷算法? 的相关文章

  • 视频转文字软件怎么用?教你轻松搞定

    你是否遇到过需要将视频中的对话或讲解内容转换为文字的情况 比如 想要回顾一段重要的讲座 但是视频的质量不佳 或者想要将一段家庭视频中的对话记录下来 日后可以回忆 这时候 一款好的视频转文字软件就能派上大用场 今天 我们就来介绍几款视频转文字
  • 利用文件夹选项解决实际问题的系统小技巧

    利用文件夹选项解决实际问题的系统小技巧 在Windows操作系统中 文件夹选项是一个非常实用的功能 可以帮助我们解决许多实际问题 下面 我们将介绍一些利用文件夹选项解决实际问题的系统小技巧 1 隐藏文件夹 有时候 我们可能需要隐藏一些文件夹
  • 短视频时代:文案的力量与价值

    在当今这个信息时代 短视频以其独特的魅力和巨大的传播力 已经深深地渗透到我们的生活中 无论是抖音 快手 还是其他短视频平台 它们都在以自己独特的方式塑造着我们的娱乐生活 而在这些短片的背后 有一个重要的元素在发挥着关键的作用 那就是文案 文
  • 38条Web测试经验分享

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读1 9k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 电子相册制作模板免费使用要什么工具?分享从照片到视频

    不知道大家平时有没有拍照的爱好呢 我一个朋友就喜欢通过镜头来记录自己的生活 一年下来她的相册里满满当当都是她的生活碎片 而且她还说要把这些照片都发布到自己的社交平台上和大家分享 可问题是她拍的照片太多了 如果以图片的形式发布 那么要发很多条
  • IPFS技术:构建可持久安全的全球文件系统

    IPFS InterPlanetary File System 是一种点对点的分布式文件系统 旨在建立一个可持久且安全的全球文件系统 它采用了一种创新的数据组织方式 将文件以Merkle有向无环图 DAG 的形式存储和分发 实现了去中心化的
  • 音频翻译文字软件哪个好用?猜你在找这几个翻译工具

    随着跨语言交流的深入发展 音频翻译技术的应用也越来越广泛 有了这项技术 大家可以在各个领域中快速实现跨语言的交流和理解 进一步实现跨语言的即时沟通 而随着这项技术的不断发展 音频翻译的准确率和实时性也在不断提高 许多应用有这项技术的翻译工具
  • 视频语音翻译在线哪个工具好?看我推荐

    最近大家是不是也刷到不少去东北游玩的视频啦 作为一个南方人 看到那些视频里的鹅毛大雪真的好羡慕 不过我也看见了不少出国旅行的小伙伴 纷纷抱怨说自己的外语水平不够好 在国外连问个路都会磕磕绊绊 这个时候我就想到 那怎么不用软件实现语音翻译在线
  • 研发实验室设计

    在科技日新月异的今天 研发实验室已经成为创新的重要载体 一个高效 人性化的实验室环境不仅能提升研发效率 更能激发科研人员的创新活力 SICOLAB喜格 将探讨研发实验室设计的核心理念和实践策略 以期为读者提供有益的参考 一 以人为本的设计理
  • 你知道几个电子相册制作方法?让我来给你分享

    你知道什么是电子相册吗 其实电子相册就是我们把照片编辑成视频的另一个说法 这样的视频一般都带有神奇的转场特效 可以自定义的贴纸和背景 很多小伙伴的爸爸妈妈都很喜欢用这样的方式来制作他们的相册 展示他们拍摄的图片 那这样的电子相册在线制作的方
  • 在线智能抠图软件有哪些?证件照背景颜色更换不求人

    2024年上半年全国计算机等级考试 NCRE 报名开始啦 不出意外 这次报名仍然是需要提交证件照 具体要求如下 本人近期正面免冠 白色背景 彩色证件照 不得使用生活照 美颜照 最小像素高宽为192x144 最小成像区高宽为48mmx33mm
  • 职场人最忌讳的10件事:从人性的角度揭示职场中的禁忌行为

    职场人最忌讳的10件事 从人性的角度揭示职场中的禁忌行为 在职场中 每个人都有自己的行为准则和价值观 然而 有些事情却是普遍被认为不可取的 从人性的角度来看 这些事情可能会触碰到人们的某些心理或道德底线 导致他人产生反感或不信任 本文将探讨
  • 机器配音在线工具有哪些? 让你的语音合成更自然

    你是不是也想成为一名大博主 随着现在的互联网时代蓬勃发展 出现了一批又一批的网红 在家里带带货 拍拍视频就能赚大钱 越来越多的人朝向网络世界进击 那么这些大博主制作一个爆款视频 必不可少的就是配音啦 但是其实很多博主用的并不是真人配音 而是
  • 处理不舒服的同事关系:实用建议与技巧

    处理不舒服的同事关系 实用建议与技巧 在工作中 我们难免会遇到一些与同事关系不和谐的情况 这些不舒服的关系可能会影响到我们的工作情绪和效率 那么 如何处理这些不舒服的同事关系呢 本文将为你提供一些实用的建议 一 保持冷静和理智 在处理同事关
  • 考HCIE要多久 | HCIE学员经验分享

    大家好 我是讯方 智汇云校的学员林同学 来自深圳信息职业技术学院的一名22届的通信专业的学生 通过近半年在云校的学习 我在年底成功考取了云服务方向的HCIE证书 想把我的一些考证心得分享给正在备考的小伙伴们 刚开始了解到ICT行业是在学校的
  • 基于信号完整性的PCB设计原则

    最小化单根信号线质量的一些PCB设计建议 1 使用受控阻抗线 2 理想情况下 所有信号都应该使用完整的电源或地平面作为其返回路径 关键信号则使用地平面作为返回路径 3 信号的返回参考面发生变化时 在尽可能接近信号换层孔的位置增加至少一个返回
  • 海报模板怎么进行编辑文字?公司宣传海报就这样做

    作为负责公司宣传事宜的部门 我每天不是在做海报 就是在找做海报的素材 力求要把这些宣传的物料都做得精致又有内容 经过我长时间的试用下来 给大家从基本功能 使用体验和不同场景下的应用这几个方面 总结出了海报制作软件哪个好用 接下来就让我为你详
  • 挖掘知识的宝藏:如何利用在线资源提升个人技能

    在这个信息爆炸的时代 互联网已经成为我们获取知识 提升技能的重要途径 无论是学习编程 提高语言能力 还是了解新的行业趋势 网络资源都为我们提供了无限可能 本文将探讨如何有效利用在线资源进行自我提升 一 选择合适的在线学习平台 首先 我们需要
  • 电脑操作系统的发展史:从初级到高级的演变

    自电脑诞生以来 操作系统作为其重要组成部分 不断推动着电脑技术的进步与发展 本文将带您回顾电脑操作系统的发展历程 探究其在不同阶段的特点与影响 一 早期操作系统 真空管与批处理 在电脑诞生初期 真空管技术占主导地位 此时的操作系统尚未形成完
  • 有效降低信号串扰的PCB设计原则

    降低信号串扰的一些PCB设计建议 1 对于传输线 保持相邻信号线之间的间距至少为两倍信号线宽 2 尽量避免信号跨越返回路径中的不连续点或者空隙 3 如果必须在返回路径中跨越空隙 则尽量使用差分线 4 电容器不是一种低阻抗互连结构 其高频阻抗

随机推荐

  • 联想工作站光盘或WinPE重装Win7找不到SSD和另外一个2T磁盘

    工作站比较老了 苏州重启系统修了 应该是原来的SSD硬盘损坏 修复工具无法修复 只能重装了 由于某一应用软件要求 只能装Win7系统 使用老毛桃制作的WinPE进去看了分区 安装系统时无法找到新的SSD盘和之前的2T磁盘
  • PLC的通信模式

    说到PLC的通讯模式 主要有两种 一种是并行通讯模式 一种是串行通讯模式 这两种通信模式有什么区别呢 PLC串行通信 串行通信一般是用二进制的位 BIT 为单位的数据传输方式 每次都只传送一位 然后除了地线之外 在一个数据传输方向上面只要一
  • element tree树形结构接口不支持搜索、懒加载情况下实现搜索

    目前项目中 element tree树形结构由于数据太多使用了懒加载 并且接口不支持搜索 只能由前端实现搜索功能 暂时按照自己思路实现功能 思路为 输入搜索内容后 直接遍历树形结构的数据 通过filter筛选出结果之后再赋值给树形结构 de
  • matlab径向分布函数作图_分子动力学的径向分布函数绘制

    这是过冷水之前在工作中的一张图片 这张图片的实际含义是以坐标原点为参考点 距离原点距离x处的小球个数f x 分布图 这个问题理解起来好容易 统计距离和小球个数的关系 but实际问题是过冷水要处理的是这样的问题 请问请告诉我随意找一个小球为原
  • 小团队管理核心(一)

    主管应该投身具体业务还是专注于管理 投身业务 or 专注管理 主管应该投身具体业务还是专注于管理 一 主管的定位 二 如何实现老板目标 三 主管应当专注管理 一 主管的定位 定位简述 通过下属实现经营者目标的人 定位解析 由此看来我们的目标
  • ThreeJS第一人称视角处理

    简介 第一人称控件指针锁定API允许您在游戏界面中锁定鼠标或其他指针设备 以便您不用绝对定位光标就可以获得坐标变化值 从而准确地判断用户正在做什么 并且还可以防止用户意外地进入另一块屏幕或别的什么地方 从而导致误操作 在ThreeJs中实现
  • Python 查看数据类型与格式

    一般我们拿到一个数据 会先看一下这个数据有多少行多少列 各个字段是什么 数据格式类型是什么 在开始讲数据格式前 需要先梳理一下各个数据类型 我们常使用的库一般是numpy和pandas Numpy下的核心是数组 array ndarray
  • Redis支持哪几种数据类型?

    Redis支持哪几种数据类型 1 什么是Redis 2 优缺点 3 Redis相比Memcached有哪些优势 4 Redis支持的数据类型 4 1 String 字符串 4 2 List 列表 4 3 Set 集合 4 4 Sorted
  • HTTPS原理(证书验证+数据传输)

    HTTPS协议相关的概念有SSL 非对称加密 CA证书等 为什么用了HTTPS就是安全的 HTTPS底层原理如何实现 用了HTTPS就一定安全吗 HTTPS实现原理 HTTPS在内容传输上的加密使用的是对称加密 证书验证阶段使用非对称加密
  • 图像评价指标(python)

    图像评价指标的综合记录 一 信息熵 熵是衡量图像中所包含的信息量的大小 熵越大说明包含的信息越多 意味着可以从处理后的图像中获取更多的信息 用信息熵来计算图像的熵值 代码 import cv2 import numpy as np impo
  • C 标准库 - 《stdio.h》

    原文链接 https www runoob com cprogramming c standard library stdio h html 简介 stdio h 头文件定义了三个变量类型 一些宏和各种函数来执行输入和输出 库变量 下面是头
  • 前端页面间数据传递常用的几种方式

    1 常用方式 url页面路径携带参数传递 localStorage方式传递 sessionStorage方式传递 cookie的方式传递 2 方式对比 url字节限制可以参考这一篇文章 HTTP中的URL长度限制 其中cookie的setC
  • 开关电源的时钟倍频 辐射发射超标RE+ 噪声源+干扰原因

    1 收藏 史上最全开关电源传导与辐射超标整改方案 医疗设备低频30 50Mhz超标 2 https bbs elecfans com m jishu 941580 1 1 html 3 辐射噪声的产生机理 知乎 1 电流源 噪声源 2 天线
  • 【华为OD机试】叠积木(C++ Python Java)2023 B卷

    时间限制 C C 1秒 其他语言 2秒 空间限制 C C 262144K 其他语言524288K 64bit IO Format lld 语言限定 C clang11 C clang 11 Pascal fpc 3 0 2 Java jav
  • 傅里叶变换快速入门

    网上关于傅里叶变换的解释特别多 但大部分都比较偏理论 导致我看来N多教程也还是懵懵懂懂 在某本书 信号完整性分析 中看到一句震耳发聩的话 每个工程师都应该亲自动手计算一遍傅里叶变换 我知道很多工具可以直接给出傅里叶变换结果 但不清不楚一直是
  • 修改UGF官方的starForce为自己所用

    第一步 修改Launcher的名字 比如我这里是修改成SpaceShoot 第二步修改命名空间名字 重新命名为SpaceShoot 第三步 重新设置Launcher场景中丢失的脚本 Builtin下JsonLite Localization
  • 设计模式-工厂方法模式

    文章目录 前言 工厂方法模式概述 使用场景 工厂方法模式优缺点 Java代码示例 前言 当我们面临需要创建不同类型对象的需求时 通常会使用工厂方法模式 工厂方法模式是一种创建型设计模式 它提供了一种将对象的创建与使用分离的方法 允许我们在不
  • VMware Workstation安装

    VMware Workstation安装 1 安装步骤 双击运行安装包程序 接受许可证协议 关键不接受不让安装啊 选择安装位置 建议非中文无空格 增强型键盘驱动程序可选 按照自身使用习惯勾选产品更新和客户体验提升计划 快捷方式 开始安装 稍
  • MD5加密

    1 md5是什么 md信息摘要算法 一种被广泛使用的密码散列函数 2 md5的特征 一 长度固定 任意长度的数据都会输出长度相等的md5值 二 不可逆 三 对原密码进行改动改变成一个字节输出数据 四 很少碰到两个不同的数据产生相同的md5值
  • 算法该不该刷?如何高效刷算法?

    一 算法该不该刷 最近有小伙伴向我咨询一个问题 就是算法该不该刷 该如何刷算法呢 这个问题可谓太大众化了 只要你去某乎 某度搜索一下相关的解答 会有无数种回答 可见这个问题困扰了多少学习计算机的同学们 但不管回答有多少种 总结一句话就是 算