如果你想入门算法,那么我这篇文章也许可以帮到你。

oj网站有这么多,当然还有其他的。我当初是在hdu上面刷的,不要问我为什么,问就是当时我也是一个新手,懵懵懂懂就刷起来了。点这里可以进入这个网站https://vjudge.net/



我只在hdu上刷其他的没刷过。让我建议的话也是建议你刷hdu,差不多真的。

先给大家看一下我oj网站上的记录,这是杭电刷题网站,我不是杭电的,我是一个非常非常普通的本科生。链接在这http://acm.hdu.edu.cn/

很水的数据提交错误(WA)的次数太多,但我确确实实是凭借它比大多数人都快速的入门了算法。这里题目不多而且很多是水题,刷水题也有不少好处能让你在学算法题的路上没那么枯燥。 大概有哪些算法呢?这里列出一些我当时做的题(有些不在上面)。题目都是非常非常基础的题目属于入门级别的基本上没有什么变形,可以说相当于模板了。

接下来分享一下当时我是怎么刷这些题的(下面的一些数字要是看着比较烦的话可以不用太关注),我没看任何人的推荐路线去刷这些题(那时候我也不知道还有刷题路线这些东西啊,纯新手对一切一无所知)。登陆进去hdu一般情况下是在第11页开始的(现在好像又从第一页开始了,从哪里开始不要紧),也就是题号是2000,当时懵懵懂懂从2000一直刷到了2058。越到后面感觉有些题目难度就上来了(当然这是对我来说的)。有些题即使是看了很多的题解我还是不会,无奈只能跳过。

一路刷到2058题后,我发现题号是从1000开始的,前面还有好多题没有刷就跳去第一页刷题。所以后面我就从1000开始刷了。不过这次我学聪明了,我没有全部都刷。我只刷一些比较多人刷的题目,这里强烈推荐提交量超过30000的记住是提交量不是通过量。刷这些提交量通过三万的理由如下,这些提交量三万以上的题目基本上道道是算法精品,是非常基础的算法题,可以当作模板。我一路从1000刷到了2000左右(后面就没怎么刷了)。基本上所有的30000通过量以上的题目都给刷了一遍。刷完感觉自己好像变强了,最主要的是自己的思维逻辑提升上来了_

其实刷20000提交量以上也是可以的,那些应该也是一些算法题,有实力的可以这样子做。

如果你问我没有基础去刷这些题会不会困难,额确实是比较难,不过难也就难一个月左右吧。我刷hdu大概刷了一个月(期间痛苦并快乐着),就刷完上面所列的那些题目了。刷这些题的时候我才刚刚开始知道算法大概是个什么东西。我的基础只有大一刷的一些基础C语言题目,期间思维的转变很关键。开始基本上很多题目都是找百度的。每道题目看了好多个人的题解,大多数时候看的一脸懵逼,不过还是慢慢坚持下来并且适应了。

如果你问我一个月够了吗的话。一个月是真的够了,只要你吧一天的主任务放在刷题上真的可以入门这些非常有用的算法,从此飞黄腾达(其实是掉进了坑哈哈,不过为了钱一切都值得)。如果你再肝一点半个月估计也可以搞定。

这里再分享一下我看题解的一些小技巧。开始刷到算法题(那时候并不知道这些题是算法题)是真的痛不欲生,百度题解一脸懵逼,看了好多题解还是不太懂这道题,不过看多一点题解就是我要分享给你的小技巧。刚学的算法题,随便找一些自己认为比较好的(推荐代码简洁的),然后就去认真的看,看不懂没关系一遍很难看懂的(对未知感到恐惧很正常,但心态放平不要畏难真的很重要,这不是鸡汤,不少人应该亲生经历过),可以不用继续看他的题解,去看其他人的题解,认真看个几个人的题解,慢慢的你就会对这个算法有一个大概的了解,看着看着你就会豁然开朗,感觉看的题解差不多的时候,就从中挑一个自己认为比较简洁的代码去看(记得多问几个为什么),一定要每一个细节都搞明白,为什么这里是这样子,那里是那样子。多动手在纸上模拟(这样子不容易开小差)。

曾国藩说过这样一句话“大处着眼,小处着手;群居守口,独居守心”。我的刷题方法似乎在一定程度上吻合了“大处着眼,小处着手”这八字真言哈哈。这八个字放在哪其实都是可以的。不赞一波吗,喜欢的可以关注一下我的公众号玩编程地码农啊。

如果你问我现在开始学的话晚了吗?你能看到我这篇文章,那就说明不晚,至少你正在找一个让自己变优秀的理由。我没有理由给你,但我用我的实际行动告诉你,只要你坚持一个月,你一定会变得更优秀。相信你学完这些算法会找到让自己变优秀的理由(哪怕是为了钱也好)。

如果你不喜欢刷题,想快速入门算法我觉得是不太可能的,学算法一个比较好的办法就是持之以恒的刷题。

这些题量多吗?真心不多,坚持一个月,即使是你没有任何的算法基础,只要你会一门语言,就ok啦。当时我是大一第一学期学了C语言,寒假边学C++边刷hdu的。

这篇文章也是一时心血来潮,想着把自己的经历让大家看见,希望大家能少走点弯路。

最后再谈一下我学了这些算法之后的一些成效,这些算法学完之后不久,我就陆陆续续去学习其他数据结构与算法了,例如什么红黑树啊,B树啊,跳表啊之类的。新的数据结构与算法难度变大了,但是我花的时间却不多,很多知识都能够不费太多精力就看懂,这可能是我刷题之后思维的提升和能力的提升的一种表现。相信我花一个月去刷刷题目,刷完之后你会有意向不大的收获。

逼迫一下自己,一切都是从这里开始。

如果觉得有收获,不妨花个几秒钟点歌赞,欢迎关注我的公众号玩编程地码农,目前专注写数据结构于算法相关知识。

花了一个月的时间在一个oj网站只刷了这些题,从此入门了绝大多数算法的更多相关文章

  1. 大一寒假我在一个oj网站只刷了这些题从此入门了绝大部分通用算法

    如果你想入门算法,那么我这篇文章也许可以帮到你. 先说点题外话.这是在一个不冷不热的寒假,照理来说寒假应该很冷,但这个寒假是真的舒服.这样舒服的寒假学习似乎是一件不可能的事情,所以我继续我的游戏生涯, ...

  2. 各种OJ网站,刷题必备

    各种OJ网站 落谷 vijos JoyOI CodeVS Comet OJ 北京大学 浙江大学 杭州电子科技大学 信息学奥赛一本通 以上就是本蒟蒻所知的OJ网站 收集和打字应该值一个赞吧

  3. 一个月的时间--java从一无所有到能用框架做点东西出来

    四月20号到六月2号 因为顺利完成了Struts在线考试系统的学习,基本掌握了struts框架的原理和他众多复杂的标签.趁着下一件事情还没到时间,也顾不上写昨天研习的student部分和今天stude ...

  4. (Java) 2014年1月1日减一个月涉及时间与字符的转换

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...

  5. php 根据输入的参数,获取上季度最后一个月的时间

    public function getTime( $time ='2017-06-01 00:00:00'){ $month = date('m',strtotime($time)); $season ...

  6. Mysql 查询一个月当前时间一个月之前的数据

    sql: AND date_format(createDTM, MONTH),'%Y-%m-%d')

  7. 花1个月时间准备 面试华为,薪资和定级都谈好了却被拒,HR竟说......

    说在前面,千万不要频繁跳槽. 本来华为很想去的,面试前花了一个月的时间准备,面试过程挺顺利的,也拒绝了其他的所有面试邀请,而我拒绝其他面试邀请的底气,则是之前面试过程中的良好表现,薪资和定级都谈好了. ...

  8. 自学一个月的java了

    不知道这篇博文有不有朋友看到.先自我介绍一下,硕士一年级下学期. 对编程感兴趣,硕士一年级下学期转学计算机专业,目前刚好一个月的时间.接触计算机也是刚好一个月的时间. 学习了java,javaweb. ...

  9. C# 时间计算 今天、昨天、前天、明天 一个月的开始日期与结束日期

    C# 时间计算    今天.昨天.前天.明天   class Program    {        static void Main(string[] args)        {          ...

随机推荐

  1. 使用迭代器模式批量获得数据(C#实现)

    先说一下项目的背景,以前曾经做过一个项目,根据Excel中的数据批量的到网页上抓取数据,将抓取到的数据批量的回填到Excel中.这个Excel中有很多行的记录(多的时候会有好几千行),每一行数据存储能 ...

  2. 入门大数据---Spark_Streaming整合Kafka

    一.版本说明 Spark 针对 Kafka 的不同版本,提供了两套整合方案:spark-streaming-kafka-0-8 和 spark-streaming-kafka-0-10,其主要区别如下 ...

  3. Python干货整理之数据结构篇

    1 stack的实现 实现接口: init() 用于初始化stack,数据类型为list size() 用于获得stack的大小 push() 用于往栈中添加元素,添加的元素类型可以是int或者lis ...

  4. P1640 [SCOI2010]连续攻击游戏【并查集】

    题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备 ...

  5. C# Thread、lock

    class Program { private static readonly object obj = new object(); static void Main(string[] args) { ...

  6. vue与react对比总结(一)

    一.react和vue设计上的共同理念 1.使用 Virtual DOM 2.提供了响应式 (Reactive) 和组件化 (Composable) 的视图组件. 3.将注意力集中保持在核心库,而将其 ...

  7. django admin 添加用户出现外键约束错误

    今天在做mxonline项目时,注册了用户表进admin后,想在后台添加一个用户试试,结果出现了错误,经过一番搜索发现以下两个解决方法,不过我只用了一种 报错信息: IntegrityError: ( ...

  8. 五.数据库同步,创建django用户,用户登陆过程

    (1)配置数据库 项目目录/settings.py是一个普通的python模块,每项配置都是一key/value 数据库的配置是以dict的形式存放在这个模块中,key名为:DATABASES DAT ...

  9. Python-02 可视化之tkinter介绍

    1 控件介绍 1.1 Label import tkinter as tk # 使用Tkinter前需要先导入 window = tk.Tk() window.title('My Window') w ...

  10. python网络编程01 /C/S架构|B/S架构、网络通信原理、五层协议、七层协议简述、端口映射技术

    python网络编程01 /C/S架构|B/S架构.网络通信原理.五层协议.七层协议简述.端口映射技术 目录 python网络编程01 /C/S架构|B/S架构.网络通信原理.五层协议.七层协议简述. ...