当前位置: 首页 > news >正文

学弟学妹少走弯路,超完整算法刷题路线出炉

大家好,我是帅地。

本篇文章主要讲解下面三个事:

1、自己学习算法的一些经历

2、大家学习算法存在的一些普遍问题

3、给大家规划的算法刷题路线

一、算法学习往事

记得当初学了 C 语言就开始刷题了,刷题倒不是面试,而是为了通过转专业考试,因为我大一第一学期读的是非计算机专业,了解到转专业需要做 一些简单的算法题,那会我就给同学借了学校的 OJ 账号,开启了一波刷题之路。

到了第二学期转专业考试,也是轻松通过的考试,因为对我来说,那些试题太简单啦。

到了大一第二学期之后,我就慢慢开始学习数据结构了,在 OJ 上也没怎么刷题了,因为比较简单的题都被我刷了,剩下的都是一些比较难的题,有些刷不动,就没刷。

那会刷的题都比较考察思维,没有涉及诸如回溯啊,动态规划啊这些算法思想,不过那会是刷的真爽,因为每次通过一道题就可以升一个等级,刷了比较难的题直接涨 三个等级(当然具体我也忘了,只是记得是这样)。

不过我很庆幸那会的刷题,虽然没有学到各种牛逼的算法思想,但是刷了一两百道题之后,我觉得我的编码能力确实有 不少的题型,比如很多时候,我能够把自己的想法转化成具体的代码,而这种能力,我觉得是非常重要的。

后面学习数据结构的时候,有不少题数据结构,我了解了思路之后,自己就能够试着去写代码了,即使存在不少 bug。

大概第二学期花了两个月学完了《数据结构与算法分析:C语言描述版》这本书之后,根据自己各方面都有了挺大的提升,然后学校也有开设算法选修课,通过选修课也接触了诸如 枚举啊,贪心啊,动态规划,回溯之类的算法思想,不过那会是真的不知道老师在讲什么,特别是动态规划,一上来就是 0-1背包问题,反正我是听的 一脸懵逼。

之后自己就去买了好些书,比如《挑战程序设计大赛》,《编程之美》,还有ACM算法竞赛啥的,反正忘了,总的来说就是,书看的比较多。因为那会不像现在,网上攻略一大堆,网课也一大堆,当然,那会也没有诸如校招等相关信息。

但是我觉得也挺好的,至少学的很爽,也没想着是要笔试,面试啥的,学的比较纯粹,然后也有去一些诸如 杭电OJ 的平台刷了一些题,leetcode 倒是刷的不多,leetcode 是后面校招求职才知道的。

总的来说就是,大一和大二第一学期,在算法上还是花了不少时间,也学的很快乐,但是要说刷题的数量,其实不多,我感觉可能就是三四百道吧,但是我觉得对于 leetcode 上的题,很多题还是可以做出来,包括后面大厂面试,基本都能做出来,笔试的话,有点难,但是也做的还行吧。

总的来说就是,我觉得先打基础非常重要,之后再去学习一些算法思想,之后再刷题巩固。

二、大家学习算法存在的一些普遍问题

刚才我大致说了我算法学习的一个大致路线,相对来说我踩坑是比较多的,比如我是踩了坑之后,再去学习对应的算法思想,而且前期刷了很多基础题,编码能力也还不错。

但是现在的很多人,我觉得编码能力好差啊,比如有些人说已经刷了 300 多道 leetcode 的题了,我以为挺厉害了,但是我让他做题,发现好菜啊,就是不够灵活 + 无法把自己的想法用代码表达出来,而且寻找 bug 的能力也比较差。

而且很多人也是按照 leetcode 的顺序刷题,如果是非初学者,我觉得按照顺序也是没问题的,但是 leetcode 顺序的话,难度分布还是不科学的,如果你硬着头皮去刷,肯定被劝退,比如第十题就是正则表达式

当然,也有很多人直接跟着攻略学习一些算法思想,然后刷题,这样也不是不行,但是如果是初学者,比如学习了一门语言,并且也没做过什么练习题,那么其实编码能力很差的,即使学懂了算法思想,但还是会无法自己独立写出代码,原因就是基础太差,我觉得可以先做一做基础题,再去学这些算法思想,再去刷题吧。

三、给大家规划的算法刷题路线

然后也有很多人问是按照 leetcode 顺序刷题还是分类刷题,其实刷题没有严格顺序,专题刷或者顺序刷都可以,但是这对于初学者来说,容易遇到很难的题,进而被劝退,所以我也给大家规划了一个刷题顺序,如果你没有明确的目标,你可以按照我这个顺序来刷题,本刷题顺序只是基于我个人的刷题理解,挑选了差不多 200 道题,并且会按照循环渐进且相对系统的方式给出题目,反正按照这个顺序刷,以后应付算法面试或者打蓝桥杯这些都是问题不大。

大致目录

image-20230210133458174

当然,这个刷题路线是免费的,大家如果没有明确路线的,可以跟着刷,题量 也是挺多的了,跟着刷完,面试和蓝桥杯这些,应该问题不大。

算法刷题路线地址入口:https://www.playoffer.cn/1216.html

大家加油!

相关文章:

学弟学妹少走弯路,超完整算法刷题路线出炉

大家好,我是帅地。 本篇文章主要讲解下面三个事: 1、自己学习算法的一些经历 2、大家学习算法存在的一些普遍问题 3、给大家规划的算法刷题路线 一、算法学习往事 记得当初学了 C 语言就开始刷题了,刷题倒不是面试,而是为了…...

Windows截取gif动态图的软件 ScreenToGif 的安装、使用教程

一、概述 👉GIF(Graphics Interchange Format),又称图形交换格式,是一种公用的图像文件格式标准,于1987年由Compu Serve公司成功研发并推出。 👉GIF用于以超文本标志语言方式显示索引彩色图像&a…...

C++程序设计——多态:虚函数、抽象类、虚函数表

注:以下示例均是在VS2019环境下 一、多态的概念 通俗来讲,多态就是多种形态,当不同的对象去完成某个行为时,会产生出不同的状态。即不同继承关系的类对象,去调用同一函数时,产生不同的行为。 比如”叫“这…...

OpenMMLab AI实战营 第6课 语义分割与MMSegmentation

第6课 语义分割与MMSegmentation 1. 语义分割简介 任务:将图像按照物体的类别分割成不同的区域,等价于对每个像素进行分类应用 无人驾驶人像分割智能遥感医疗影像分析 语义分割 vs 实例分割 vs 全景分割 语义分割:仅考虑像素的类别&#xf…...

产业互联网是对互联网的衍生和进化,也是一次重塑和再造

互联网并不仅仅只是充当撮合和中介的角色,它应当具备更多的功能和意义。只有这样,它的发展才能够真正全面和完善。产业互联网的衍生和出现,正是在互联网进化的基础之上出现的。这是我们看到之所以会有那么多的互联网玩家投身到产业互联网的浪…...

Shell脚本之——Hadoop3单机版安装

目录 1.解压 2.文件重命名 3.配置环境变量 4.hadoop-env.sh 5.core-site.xml 6. hdfs-site.xml 7. mapred-site.xml 8.yarn-site.xml 9.完整脚本代码(注意修改主机名) 10.重启环境变量 11.初始化 12.启动服务 13.jps查询节点 1.解压 tar -zxf /opt/install/hadoo…...

代码随想录NO39 |0-1背包问题理论基础 416.分割等和子集

0-1背包问题理论基础 分割等和子集1. 0-1背包问题理论基础(二维数组实现)2. 0-1背包问题理论基础 二(一维数组实现)1. 0-1背包问题理论基础(二维数组实现) 背包问题一般分为这几种: 0-1背包问题:有n件物品和一个最多能背重量为w…...

FITC-PEG-FA,荧光素-聚乙二醇-叶酸,FA-PEG-FITC,实验室科研试剂,提供质量检测

FITC-PEG-FA,荧光素-聚乙二醇-叶酸 中文名称:荧光素-聚乙二醇-叶酸 英文名称:FITC-PEG-FA 英文别名:Fluorescein-PEG-Folic Acid 性状:基于不同的分子量,呈白色/类白色固体,或粘稠液体。 溶…...

简洁易懂:源码+实战讲解Redisson并发锁及看门狗自动续期

1 缘起 有一次同事问Redisson存储的键是否为hash? 我当时,没有看Redisson的相关源码,只知道应用, 所以没有办法回答,于是开始看看Redisson实现的源码, 顺便写了一个单机Redisson测试, 发现Redi…...

TCP 三次握手和四次挥手

✏️作者:银河罐头 📋系列专栏:JavaEE 🌲“种一棵树最好的时间是十年前,其次是现在” 目录TCP 建立连接(三次握手)为啥不能是 4 次?为啥不能是 2 次?三次握手的意义:TCP 断开连接(四…...

JavaWeb复习

JavaWeb复习一.概述1.概念2.B/S和C/S 架构二.HTTP通信协议概述1.概念2.HTTP1.0 与 HTTP1.1 版本3.HTTP 协议组成4.常见状态码5.GET 与 POST 请求方式三.Tomcat1.Web服务器介绍2.安装(Windows)3.Tomcat目录结构4.server.xml部分配置解释四.Servlet1.概念2…...

P14 PyTorch AutoGrad

前言:激活函数与loss的梯度PyTorch 提供了Auto Grad 功能,这里系统讲解一下torch.autograd.grad系统的工作原理,了解graph 结构目录:1: require_grad False2: require_grad True3: 多层bakcward 原理4: in…...

前端报表如何实现无预览打印解决方案或静默打印

在前端开发中,除了将数据呈现后,我们往往需要为用户提供,打印,导出等能力,导出是为了存档或是二次分析,而打印则因为很多单据需要打印出来作为主要的单据来进行下一环节的票据支撑, 而前端打印可…...

Operating System Course 2 - My OS

Computer Startup process上一篇:http://t.csdn.cn/XfUKt 讲到这个启动设备的第一个扇区:引导扇区。那么引导扇区的代码长什么样子?这里得看引导扇区代码源文件bootsect.s(.s后缀文件为用汇编语言编写的源代码文件)。另…...

离散数学 课时一 命题逻辑的基本概念

1 命题 1、命题:可以判断其真值的陈述句 2、真值:真或者假(1或者0) 3、真命题:真值为真的命题 4、假命题:真值为假的命题 5、原子命题:不可以再被分解成更简单的命题 6、复合命题:由原子命题通过联结词联结…...

Word文档带有权限密码怎么办?

Word文档的权限密码指的是什么?其实这是Word文档的保护方法之一,具体指Word文档的编辑、修改受到了限制,需要输入密码才能进行。 设置了权限密码的Word文档还是可以直接打开,只有当需要编辑或者修改内容的时候,才会发…...

C++多态

1. 多态的概念1.1 概念多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态举个例子:比如买票这个行为,当普通人买票时,是全价买票&#xff1b…...

访问学者如何申请美国J1签证?

一、申请美国J1签证的步骤: 第一步:填写I901表。 填写I901表会收取SERVIS费用180美元,可以用VISA/Master卡直接网上支付。填完后打印收据单或者存成PDF后续再打印,记下I901收据编号。 第二步:DS-160表填写。 填写DS-…...

使用gitlab ci/cd来发布一个.net 项目

gitlab runner的安装和基本使用:https://bear-coding.blog.csdn.net/article/details/120591711安装并给项目配置完gitlab runner后再操作后面步骤。实现目标:master分支代码有变更的时候自动构建build。当开发人员在gitlab上给项目打一个tag标签分支的时候自动触发…...

笔试题-2023-蔚来-数字芯片设计【纯净题目版】

回到首页:2023 数字IC设计秋招复盘——数十家公司笔试题、面试实录 推荐内容:数字IC设计学习比较实用的资料推荐 题目背景 笔试时间:2022.08.24应聘岗位:校招-芯片逻辑综合工程师-智能硬件笔试时长:90min笔试平台:nowcoder牛客网题目类型:不定项选择题(15道)、填空题…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...

龙虎榜——20250610

上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...