如何学习算法

写在前面

要学习算法首先要理解算法,然后能够通过代码实现对应功能,做题是一种检测你对算法理解度的方法
我会列出几个比较主流的在线测题系统,也就是大家说的oj,然后分别介绍它们的侧重点以及使用方法

一、洛谷https://www.luogu.com.cn/

我最看重洛谷的是什么呢,它有大量的模板题,一个模板题大概就对应一种算法,如图,用户进入洛谷首页后点击左侧的题库,然后再查找题目里面输入[模板],就可以得到大量的模板题:

在这里插入图片描述

这些模板题用户只需理解算法然后将其用代码实现大概就能正确通过了,掌握了基础的模板以后遇到相似的问题只需将模板代码修改以下就能解决。
那么怎么学习算法呢?
我们点击进入题目界面

在这里插入图片描述

可以看到右侧有一个[查看解析]的按钮,我们再点击进去

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

通常模板题的解析里面会有大量的大神给出该算法通俗易懂的解释以及代码
用户理解算法之后即可实现代码对该题进行求解
实现代码后发现有bug,不能同通过全部题目样例,把解析里的代码抄过来就好了, 通过与解析里的代码作对比,找到自己实现的代码中隐藏的bug,解决、ac、睡觉
做完模板题后就可以去做相同标签的题,加深对该算法的理解以及学会灵活地使用该算法

二、力扣https://leetcode-cn.com/

力扣的话呢比较侧重开发,在面试前一定要多刷力扣的题

在这里插入图片描述

进入题目界面看看

在这里插入图片描述

可以看到它是给你一个Solution的类,然后要你通过实现类方法来解决对应的题目,比如上面的题目的一种解决方法如下

在这里插入图片描述

它与我们之前接触到oj的做题方式最大的不同就是力扣上面的题是不用自己将一个代码文件从头写到尾的,我们只要在类方法里面实现对应的方法,然后将答案返回即可。同样的它也有各路神仙给出的题解(废话)
面试前一定要刷力扣!!!面试前一定要刷力扣!!!面试前一定要刷力扣!!!

三、Codeforceshttps://codeforces.com/problemset

Codeforces呢就是一个国外搞的知名算法平台了,操作跟平时我们接触到的oj差不多,就不展开说了。Codeforces里面的题比较偏向思维,大部分的题实现的代码都不会太长,想要训练思维的话就从难度800左右开始做题吧,然后通过练习提升理解题目的速度以及实现代码的速度,比如3分钟切一道(逃)

在这里插入图片描述

四、其他常见的算法平台

牛客网 https://ac.nowcoder.com/acm/problem/list
Virtual Judge https://vjudge.net/problem

写到最后

个人建议:学习算法必须一个专题一个专题的学,只有当你会灵活使用该算法时,才算是掌握了该算法
算法路漫漫其修远兮,珍惜每一根还没掉下来的头发
  • 4
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值