零基础新手学习算法Leetcode刷题指南

刷算法到底在刷什么?这是很多人会想不明白的。而算法为什么这么重要,今天想说下这块内容。市面上都在说不要重复造轮子,这里说的不是你在一开始就不造轮子。

我们学习成长的过程是,先模仿,后改造,最终创新。所以每个人都在重复造轮子,只是刚开始阶段,如果你一直在造轮子,那么说明你不是站在巨人的肩膀上。所以这里我想先说下,大学时期就是要多造轮子,多刷算法题,扎实的基础,是建造代码世界的地基。

地基不牢,地动山摇,没人敢要你去开发,因为稍不注意,你就会让整个项目崩塌。

而刷题是怎么个过程呢?先认识到算法到底学什么?

第一个就是抽象能力。这点非常重要。在刷算法的时候,简单的加减乘除,训练的是你的代码能力,以及考虑问题的全面性,逻辑思维。当复杂的像线路规划,就不是简单的逻辑问题,还有你的抽象表达能力。

循序渐进的去刷题,会让自己了解到自己的代码缺陷,补充自己考虑不全的地方,以及代码的可靠性。这就是刷题第一个我们训练的能力。

我们在写代码的时候,考虑正常情况没问题,大多数就是没有注意到异常。而像Google,微软开发工程师,一样会埋下Bug,代码是写不完备的,但是能够考虑周全,是写代码的人基础能力,如果case项没写全,if条件没穷举,那么就是一个隐性的Bug。

当你思考问题越来越全面,仔细,把该想到的,大多都考虑到了,这个代码就是高质量的,也是程序员老人值钱的地方,他们知道你这个代码缺哪些补充条件,需要做一些判断处理。

第二个就是严谨。刷算法题就是会让你不断地开动脑筋,去思考怎么实现功能,同时还要考虑各种数据输入,出现的异常状况。Leetcode刷题就如同打怪一样,随着不断地刷题,你的知识库会更加牢靠,你会更加顺手的去用手里的武器,这里指的是各种数据结构,类型,以及系统提供的库,快速帮助你完成目标。

基础的算法刷完,后面你遇见一些实际问题,比如写了一个网站,做数据库查询,你就能知道有哪些,大概哪个符合要求。你凭空想一个算法,就不如在你已知的基础上做改进。

我在刚毕业时候,公司让开发一个百家姓,要做智能查询的。代码上用的是二叉树查找法,我在基础上做了一个哈希映射加二叉法提高效率。

这些都是在数据结构和算法中你会接触到的一些经典方案,时间和空间看怎么交换。很多时候我们看到的查询表,你说计算机算不出来吗?可以的,但是没必要,存储一个表格就能轻松的快速的直接查询的方法给出答案,在合理状态来就是最优解。

刷题是训练自己的思维,遇见问题时候的解决能力,当你不会的时候,就会去开动脑筋,进行搜索,最终搞定问题,而这个就是刷题真正的意义所在。让你最终有了一套解决问题的能力,技巧。

这是我想说的,下来我分享一些Leetcode的资料,大家感兴趣的想学习的可以去学了。

第一个是中文网站 https://leetcode-cn.com/

上面有各种题,你也可以用各种语言去编写实现,如果不会,它有相对应的讲解视频,作为学习非常方便了。

第二个是动画版本演示学习,更加直观一些。(文末有获取方式

第三个是文字版本的讲解,详细的讲解Leetcode每个题的解法,实现方式。(文末有获取方式

第四个,分享一个B站视频,大家有时间,时间充足下可以学习。

地址:https://www.bilibili.com/video/BV1GW411Q77S

最后说下我的b站,主要讲解计算机知识,职场经验,面试技巧,大家可以来围观了。B站搜索 程序员职场大萌哥  ,就可以看见我了。

最后分享个好的课程,大家感兴趣可以围观学习了。

长按下方图片,进行学习。

本文中的资料,后台回复 Leetcode刷题 获取全部资料。

~~ end not end ~~

职场老鸟,互联网十年从业生涯,分享 [Java,Python,安卓,AI,爬虫] 技术文章,学习资料, 热点趣闻等。关注回复 1024 Python 电子书大全 面试资料,给你一份私藏的程序员好礼,永远更新中!赶紧来关注哦!