算法日积月累0写在前面的话李威威

我是一个半路出家的“程序员”,在我刚开始从事编码工作的头几年,我没有接触过“算法和数据结构”,觉得它们是只会在我找工作的时候用得到的知识。尽管有很多人跟我说过“算法和数据结构”无比重要,但万事“开头难”、“开头难”、“开头难”……

终于有一天,我终于开始了,从此入坑。

如果你想在“程序员”的道路上走得更远的话,“算法与数据结构”是必学的,越早学习越好。

我是谁?我是一个本科数学专业,其实数学一点都不好的程序员,如果你有更好的学习建议,欢迎指点、交流。

先从“参考资料”说起吧,“算法和数据结构”是一门非常抽象的学科,就像非数学专业的学生学习数学一样,如果没有很形象、生动的学习资料,入门就会是一件非常痛苦的事情。因此,找好“参考资料”是关键。

我的算法入门课程:慕课网liuyubobobo老师的《玩转算法》课程,这门课程我是在2017年5月的时候学习的,可以说通过这门课程的学习打开了我进入“算法与数据结构”学习的大门。liuyubobobo老师的讲解十分细致,配合了制作精美的动画,大大降低了抽象的算法的理解程度,如果你对“算法和数据结构”一无所知,强烈建议你看看这个老师的视频教程,不懂的地方多看几遍,看完要做笔记,要练习。liuyubobobo老师是用C++语言讲解的这个课程,我当时只会Java,不过一点都不影响理解,正如liuyubobobo老师的介绍“算法与数据结构应该是与语言无关的”。

我可以,相信聪明的你也一定可以。

我的算法入门书籍:《算法4》。

这里的4是第4版的意思,是一本非常经典的外文读物,已经有中文译本了。这本书和《算法导论》一样厚,但比《算法导论》要生动很多,同时也是国外名校使用的一门非常经典的教材。

这本书的特点:1、颜值特别高:红色的封面,里面的纸像打印值一样白,阅读的时候很舒服;2、结构很清晰,每一个算法都有代码实现,主要还是Java,我当时只会Java语言,看这本书其实没有什么阻力;3、这本书还有配套的网站,你可以去这个网站上下载书中的代码。

其实我之前介绍的liuyubobobo老师课程也大量参考和使用《算法4》这本书上的思路和例题。两者配合着看和学习,可以说是非常完美了。

下面再说一说其它的书籍:

1、《算法导论》:我是学习了《算法4》(当然没有看完)再去看《算法导论》的,很多地方其实都容易理解得多,《算法导论》有一点对初学者很不友好的地方,那就是所有的算法代码都是伪代码,但这毫不影响《算法导论》的地位,或许《算法导论》根本就不是给初学者看的。

2、《算法图解》:这本书我是和《算法4》一起买来的,一本很小的书,用Python语言实现,看着玩,图中的插画很生动。

3、《剑指Offer》:

4、邓俊辉老师《数据结构C++语言版》

其实最早认识邓老师是他的mooc,他制作的算法与数据结构flash动画是十分生动的,它的教材和课件风格是一致的,他在教学中还赋予了算法比较优雅的哲学含义。在内容上,涉及到了一些高级数据结构,例如红黑树、B树等,如果理解高级数据结构有困难的话,可以看看他的mooc或教材。

LeetCode:国内外公认的刷题网站,想熟练掌握常用的算法和数据结构,刷题是必经之路。这个网站现在已经有中文版了,对于看英文比较吃力的朋友,例如我来说,是一个好消息。不过中文版里面的讨论的内容没有英文版多,所以,想要参考别人写的代码可以到中文版上看题目的翻译,到英文版里看别人的代码。

顺便说说,我在刷题的过程中,找到了一些视频资源,可能大伙在刷题的时候也会搜索到它们的视频资源或者个人博客,它们是“Cspiration”、“花花酱”、“小Q”、“小Fu”等。

LintCode

这个网站可以作为LeetCode的补充,不过我看大家刷得比较多的还是LeetCode。

学习《算法与数据结构》是一项工程,并不是一件特别轻松的事情,所以我觉得刚开始的时候,培养兴趣是很关键的,要让自己认识到学习《算法和数据结构》是十分有用的。然后贵在坚持!

THE END
1.有哪些好的刷题网站?2017年最受欢迎的编程挑战网站在线刷题网站,汇集了各大公司的算法面试题。有阶梯式训练题库,帮你选好应该刷的题目,特别适合小白和懒人。评测数独很快,最大的中文在线题库。 年度挑战赛类型: 18、Google Code Jam Google Code Jam 是一项由 Google 主办的国际程序设计竞赛。该项赛事始于 2003 年,旨在帮助 Google 发掘潜在的工程领域顶级人才。https://blog.csdn.net/UzV80PX5V412NE/article/details/78653695
2.程序员常用的刷题网站程序员常用的刷题网站 程风破浪会有时关注赞赏支持程序员常用的刷题网站 程风破浪会有时关注IP属地: 上海 22017.07.21 21:01:34字数886阅读47,850 1、Lintcode Lintcode.com——LintCode网站是国内较大的在线编程&测评网站。此网站提供各大IT公司的算法面试题类型,行分门别类,由简单到中等,再到难,便于不同https://www.jianshu.com/p/df4fabc5dc74
3.刷题网刷题网专注提供小学初中高中各学科习题在线刷题服务,覆盖小学、初中、高中各科大量习题在线刷题训练,给学生提供最具价值的刷题服务,做国内更具性价比的刷题网站https://www.shuatiw.cn/
4.趣IT官网趣IT——互联网在线刷题学习平台,汇集互联网大厂面试真题,拥有java、C++、Python、前端、产品经理、软件测试、新媒体运营等多个热门IT岗位面试笔试题库,提供能力测评、面试刷题、笔试刷题、程序员刷题、面试经验分享、IT技术交流、实习内推等服务,求职刷题就来互联网求https://www.funit.cn/
5.python去哪个网站刷题?Worktile社区– 根据测试结果来调试代码,直到通过全部测试用例。 除了LeetCode和HackerRank,还有一些其他的刷题网站,如CodeSignal、Codewars等等。这些网站提供了更多的编程练习和挑战,可以帮助Python程序员提升编码能力和解决问题的能力。选择一个适合自己的刷题网站,并坚持每天进行一些练习,可以快速提升自己的编程水平。https://worktile.com/kb/ask/93209.html
6.几个SQL在线刷题的网站推荐阅读 全部文章分类与整理 虽说我没事就喜欢喷应试教育,但我也从应试教育中发现了一个窍门:如果能够以刷题的形式学习某项技能,效率和效果是最佳的。 对于技术的学习,我经常面临的困境是,理论知识知道的不少,但是有的场景实在无法模拟 智能推荐 程序员常用的刷题网站https://www.pianshen.com/article/82351366007/
7.我爱刷题我的试卷导入试题登录 搜题 快捷上传题库 智能导入:包含单选、多选、判断、填空、简答等题型。支持智能识别、格式化题目,批量上传。 去上传题库 智能刷题 多模式刷题:顺序练习、随机练习、模拟考试、成绩统计等多种刷题模式,随时随地想刷就刷。 去刷题https://www.woaishuati.com/
8.刷刷题APP大学职业拍照搜索答疑刷题练习刷刷题APP(shuashuati.com)是专业的大学职业拍照搜索答疑,刷题练习备考工具;制作自己的在线小题库,一键将WORD,EXCEL,PDF文档生成题库手机刷题,是学习的生产力工具.几十万题库,覆盖全国128门大学职业考试,如四六级,医考,护考,考公考编,会计,教资,建筑,金融,消防,自考,导游等https://m.shuashuati.com/
9.各类刷题网站保存起来取财有道,欺诈无道。 有什么比提升自己更重要呢 学生党要知道的40个刷题网站 刚学编程的程序员必备这5大编程网站,你知道几个? 算法太复杂看不懂?这个网站有40 常见算法题,每个都有动图演示更多类似文章 >> 生活服务 热点新闻 首页 万象 文化 人生 生活 健康 教育 职场 理财 娱乐 艺术 上网 留言https://www.360doc.cn/article/441458_1134406479.html
10.八个程序员必备刷题网站,让你轻松拿offer!北大青鸟互联网学院力扣为用户提供了多种多样的开发工具,适用于真实的日常技术开发和学习场景。其中,Playground 无需设置环境,就能够帮助用户进行测试、开发、学习,甚至直接在线完成整个项目,拥有强大的在线刷题网站,海量编程题在线刷、在线判,还有成熟的讨论区。 2、lintcodehttp://m.kmbdqn.com/view/cnPc/22/76/view/5715.html
11.八个程序员必备刷题网站,让你轻松拿offer力扣为用户提供了多种多样的开发工具,适用于真实的日常技术开发和学习场景。其中,Playground 无需设置环境,就能够帮助用户进行测试、开发、学习,甚至直接在线完成整个项目,拥有强大的在线刷题网站,海量编程题在线刷、在线判,还有成熟的讨论区。 2、lintcodehttps://www.meipian.cn/4kdj8bge
12.程序员必备刷题网站,赶紧收藏吧程序员必备刷题网站,赶紧收藏吧! 大家好!今天给大家整理了一些我觉得对程序员们非常有用的刷题网站,赶紧收藏吧! LeetCode ():这里有海量的编程题,涵盖数据库和shell等各种题型,支持C、C++、Java、Python、C#和JavaScript等多种语言。 GeeksforGeeks ():这个网站上有各种学习资源和面试题,非常适合https://mbd.baidu.com/newspage/data/dtlandingsuper?nid=dt_4429990369662296430
13.刷题考试网站搭建小程序APP(源码)WeiSha100背题模式:学员可以自由切换练习模式和背题模式,在背题模式下,学员可以直接查看答案和解忻,在练习模式下学员答错的试题系统会自动显示答案和解忻,答对的流题自动进入下一题,学员可以在这两种模式下自由切换。 正确率:统计当前课程学员练习的正确率。 错题回顾:学员做错的试题,自动收录到错题库,学员可以在错题库中进https://blog.huzhan.com/nnwei/article/1363
14.学生党要知道的40个刷题网站学生党要知道的40个刷题网站 学生党要知道的40个刷题网站|卷王必备 cr:路人女主的养成方法http://www.360doc.com/content/24/0918/05/76199236_1134345846.shtml
15.考试宝包括医师资格、护士资格、执业药师、健康管理师、兽医等各类医学考试题库 特种作业 覆盖电工、焊接、高空作业、煤矿、金属、冶金等考试题库 考公和学历提升 囊括公务员、军队文职、事业单位联考、专升本、考研等考试题库 上传题库 刷题练习 多种上传格式 https://360.kaoshibao.com/
16.全网最全程序员学习网站汇总,还不赶快收藏九、面试刷题 1、LeetCode 地址: LeetCode 简介:经典的刷题网站,主要是算法题。 推荐指数:? 2、LintCode 地址: LintCode 简介:和LeetCode相似 推荐指数: 3、牛客网 地址: 牛客网 简介:一个联网求职学习交流社区。 https://www.songma.com/news/txtlist_i66992v.html
17.ACM金牌学长,算法竞赛经验分享51CTO博客学校的OJ,我大一入学的时候刷的是杭电11页里面的100题,练习的C++语法。 HDU和POJ、ZOJ一样里面也有大量的经典题。 3、Atcoder 日本的刷题网站,平常也有比赛,但频率没有Codeforces高,里面题目质量也很高。 4、Virtual Judge 这个网站是一个OJ网站合集,大家可以在VJ做其他OJ的题目,并提交。 https://blog.51cto.com/godweiyang/5516880
18.题库资料考前押题预测卷模拟卷考试大纲报名时间我爱刷题网提供公务员、事业单位、社区工作者、教师、国企、遴选选调等考试的真题,题库,押题资料http://www.ishuati.cn/
19.自学编程有这10个网站就够了,帮你省下不少学费w3cschool笔记一、刷题类网站 0. Leetcode - 全球极客挚爱的技术成长平台 网址:https://leetcode-cn.com/ 1. 牛客网 - 求职之前,先上牛客,就业找工作一站解决。 网址:https://www.nowcoder.com/ 2. Lintcode - 用刷题的方式拿到大厂 Offer ! 网址:https://www.lintcode.com/ https://www.w3cschool.cn/article/54166938.html
20.自考刷题资料推荐网站大全近年来,自考越来越受到人们的关注和重视,越来越多的人选择自考来提升自己的学历和职业水平。而在备考过程中,刷题是非常重要的一环。那么,在这篇中,我将为大家推荐一些自考刷题资料推荐网站大全。 自考押题密训班,不过全额退款,查看详细信息:自考押题 郑重承诺,不过全额退款,助力自考,中国自考网为你保驾护航! https://www.zikao35.com/107838.html
21.刷题神器官网刷题神器在线学习平台 刷题神器集UGC为主+官方精品课程的百万用户知识付费在线学习平台, 专注于打造面向大学生、企业员工、事业单位等行业考试、培训的社区化生态。 可多种方式进行试题的录入,多种考试场景,多端联动随时随地分享、参与考试,为学员带来多样化的学习体验。 通过题集市系统为用户打造知识付费的良性循环生态https://www.shuatishenqi.com/
22.力扣(LeetCode)全球极客挚爱的技术成长平台如果你刚开始刷题,还不熟悉基本编程语法和常用库函数,推荐先刷力扣官方的入门题单: 「新」动计划 · 编程入门 有了一些简单题的积累,就可以开始刷我的题单啦~ 下面的题目已按照难度分排序,右侧数字为难度分。 如果遇到难度很大,题解都看不懂的题目,建议直接收藏,过段时间再来做。 一、定长滑动窗口 §1.1 基https://leetcode.com/
23.ZOJ::HomeZOJ is an online judge system maintained by Zhejiang University ACM/ICPC Team. It allows people to solve algorithm problems online.https://acm.zju.edu.cn/
24.疯狂刷题疯狂刷题汇聚大量优题、真题、好题,在刷题的过程中可以见到各种各样的题型,如果在考试中出现了某种题型,而你见过,心态就不一样,刷题主要是为了开拓思维和巩固知识点,把学过的知识点串联,助你考试无忧。http://www.yex.ink/