有哪些学习算法的网站推荐?

网站推荐 2年前 (2022) ©
68 0 0

学习算法这么些年,从小白到大白,刷了几百道算法题,刷题网站大家都推荐了很多。

题是刷不完的,还要学会总结归纳,所以除了刷题网站, @程序员柠檬 再来分享一些算法学习工具和思路。

今天分享主要以下 3 大块内容:

  1. 算法学习和刷题网站,打好算法基础
  2. 算法刷题模板,总结套路提升算法思维
  3. 算法可视化工具,辅助理解晦涩难懂的算法

话不多说,进入正题开始吧!!

算法学习和刷题网站,打好算法基础

LeetCode

这是一个美国在线编程刷题网站,早几年国外知名IT企业如Facebook、Google等考察算法比较多,因此国外找工作的程序员会在上面刷题练习,现如今国内程序员找大厂工作算法也几乎必考,刷题必打卡的网站也是LeetCode,并且目前 LeetCode 推出了中文版本,中文名「力扣」,海量技术面试题库,拥有算法、数据结构、系统设计等1000+题目,帮助你高效提升编程技能。

下面是算法题库截图,题目做了分类,分为简单、中等、困难,对考察的知识点也做了划分,比如:数组、链表、堆、栈、贪心、动态规划等等,可以按照不同的分类去统一刷,加强理解和举一反三。

有哪些学习算法的网站推荐?

链接:leetcode-cn.com/

CodeWar

Codewars是国外的一个在线刷题网站,和LeetCode不同它比较偏重于编程语言相关的内容,目前包含几乎所有主流编程语言,有JavaScript、Python、Java、C++、Go等等,语言是你的兵器任君挑选,并且有完善的激励机制,这里的练习场被称为道场,你可以通过刷题来提高等级,在这里刷题学习就像打怪升级一样刺激,不要沉迷学习无法自拔。

有哪些学习算法的网站推荐?

有哪些学习算法的网站推荐?

链接:codewars.com/

CodeTop

CodeTop用于汇总互联网大厂面试的高频考题 帮助面试者更有针对性地准备面试

相对于力扣企业题库,CodeTop有以下优点

  1. 免费开放:汇总的高频题目免费分享给大家
  2. 分类精细:按岗位、部门进行分类,方便大家更针对性地准备面试
  3. 题源可靠:全网收录题目考察情况1,渠道不限于牛客、CSDN博客、热心网友分享等
  4. 本土特色:汇总办公地位于中国大陆的互联网企业
有哪些学习算法的网站推荐?

传送门: https://codetop.cc/home

牛客网

牛客网可以练习算法在线编程,不过除了在线算法编程,牛客还包含程序员笔试面试题库、在线编程、招聘求职等内容,讨论区还有内推信息发布,在这里不仅能学算法还能把工作相关的一条龙给安排了,是程序员学习交流面试经验的好去处。

有哪些学习算法的网站推荐?

传送门:https://leetcode-cn.com/

算法刷题模板,总结套路提升算法思维

算法的套路

很多同学刷了很多题,都是机械的刷,追求数量没有质量,也缺乏总结归纳,遇到稍微难一些的变形题就不会做了。

其实算法刷题是有套路可以遵循的,大部分人刷题是为了算法面试,对于非天赋型选手,只要掌握了基本的算法模板,就足够应付笔试面试。

我把题目做了分门归类,几乎所有的算法可以归类到以下 14 种模式

  • 1.滑动窗口
  • 2.二指针或迭代器
  • 3.快速和慢速指针或迭代器
  • 4.合并区间
  • 5.循环排序
  • 6.原地反转链表
  • 7.树的宽度优先搜索(Tree BFS)
  • 8.树的深度优先搜索(Tree DFS)
  • 9.Two Heaps
  • 10.子集
  • 11.经过修改的二叉搜索
  • 12.前 K 个元素
  • 13.K 路合并
  • 14.拓扑排序

那要怎么刷才能让自己不感到智商不够呢?

首先你要了解这些模式,然后针对每一种模式去大量练习,比如动态规划,刷他个20道同类型题目,这样下次在遇到变型题也能马上上手。

刚开始,即使是同一道题,第一次做出来了,隔几天再来也是毫无头绪,非常正常,不要怀疑自己!

这时我每一次刷题,会把这次的思考和遇到的问题,为什么没写出来的原因,记录下来,以便每次都能有进步。

这就是「总结归纳」,比如下面是我曾经对「整数拆分」这道题的做题笔记记录:

我记性不太好,脑子也没有特别聪明,每刷一次记录一次,开头是时间,后面是做题备注,类似错题笔记一样,如果你没有什么好的方法,强烈建议也像我这样记录,别着急,慢慢来,量变引起质变!

有哪些学习算法的网站推荐?

这些套路模板,刷题量足够自己能摸索归纳出来。但也有捷径可以走,那就是参考其他人总结归纳好的算法套路。

分享一些大神归纳好的算法套路和模板。

算法小抄

算法小抄的作者labuladong,按他自己的说法自己是一位饱受算法之苦的硬核朋克,所以在Github创建了一个手把手教你算算法的项目,fucking-algorithm简单粗暴,fuxx 算法,中文名称「去他丫的算法」,这个翻译也是非常精准了,透过名字都能感受到,作者手撕算法的气势。

两个月收获40K的star,多次登顶Github Trending榜首!

仓库总共 60 多篇原创文章,都是基于 LeetCode 的题目,涵盖了所有题型和技巧,而且一定要做到举一反三,通俗易懂,绝不是简单的代码堆砌。

话不多说,直接看项目目录:

有哪些学习算法的网站推荐?

基于这个项目他写了一本书,名叫「labuladong的算法小抄」也已经出版了,我恰好也认识作者,书刚出版的时候在给大家抽奖送了几本,以后有这样的福利也会带给大家。

LeetCode101题解

这份刷题笔记是谷歌工程师高畅,总结自己秋招刷算法题经验,把刷过的101道算法题按考察的知识点,分类归纳总结成电子书开源。

更重要的是,书中的代码都可以在 LeetCode 上正常运行,且几乎是最快或最省空间的解法!

LeetCode刷题网站上有众多的题型,这本算题笔记将题型按难易程度进行了归类,总结出以下题型思维导图:

有哪些学习算法的网站推荐?

有哪些学习算法的网站推荐?

这本刷题笔记有离线版本下载:

LeetCode CookBook

这个开源项目是@halfrost(中文名一缕殇流化隐半边冰,人称霜神),霜神是前阿里巴巴资深后端工程师,业余时间酷爱写博客,大学参加了3年ACM-ICPC目前他的博客已经有 300W+ 的浏览量,是 iOS 开发届的大佬级别人物。

整个题解项目全部都是用 Go 语言实现,但算法题最重要的解题思路,每道题都有详细的分析和说明,而不是一上来就写代码,所以即使你没学过Go语言,跟着霜神的题解分析,也能收获良多!

不过话说回来**,**Go语言这么火,你确定不学一下?通过这个项目既能学Go又能学算法。

电子书的序言部分:

有哪些学习算法的网站推荐?

这本电子书有在线版本:books.halfrost.com/leet

这本书的离线版本方便查看,我之前也分享过,在下面的文章里:

面试刷题刷题抓重点

大部分同学刷题是为了面试,在我们精力有限的情况下,并不一定要把上面说的 14 种模式都完全刷一遍,下面这张图做了比较好的总结,有选择性的刷题,颜色越深面试碰到的概率越高,刷!

有哪些学习算法的网站推荐?

下面这张图也做了类似的总结,还给出了大厂考察频率、小公司考察频率,甚至性价比都给你算出来了,还有什么理由不去刷性价比最高的呢!

非常重要的算法模式比如:二分法、二叉树、链表、BFS、DFS、双指针、哈希表、字典树、各种排序,这些必须做到熟练掌握。

有哪些学习算法的网站推荐?

总结

今天推荐了这几个算法学习的网站,更重要的是分享了算法刷题的套路和模板。

大家埋头刷题的时候,也要经常抬头看看前人踩出的优秀经验,能让你事半功倍!

希望我的分享能对你算法学习之路有点帮助,有用的话,记得帮 @程序员柠檬 点赞~


我的高赞回答

好了,以上就是今天的分享内容,下面是王婆卖瓜环节~

下面这些是我知乎的高赞回答合集,如果有帮助的话,请点赞&收藏&关注。

一是鼓励我创作分享,二是方便你以后查找!

  1. 互联网大厂炙手可热的后端开发岗位,如何成体系的学好?收获点赞3000+ 收藏 5100+

2. VS Code 如何编写运行 C/C++ 代码?实战开发经验分享,收获 1000+点赞 2100+ 收藏

3. 你们初刷leetcode时会怀疑自己的智商吗?手把手教会你算法刷题的正确方式,效率翻倍!

3. 算法与数据结构中,AVL树,红黑树,B树,B+树,Trie树都分别应用在哪些现实场景中?4000+ 收藏!

2. C++开发有哪些练基础的开源项目推荐?从入门到进阶,安排明明白白,点赞1400+ 收藏3700+

两个编程学习资源

认真看到这里的,都是真心想学习的同学,两个编程学习资源分享给你。

程序员写出好代码,参考世界一流互联网公司Google的代码规范:

编程学习书单推荐。学习编程最好的方法是看书+实践,尤其是经典编程图书!另外,即使是把书上的代码抄下来运行一遍,也比光看不练强百倍!

希望对你有帮助

更多优质编程干货,点击关注我的专栏学编程,涨工资

我是 @程序员柠檬 专注分享计算机编程学习和编程资源,如果有帮助,记得帮我点个赞

文章由:知乎作者:编写

订阅评论
提醒
0 评论
内联反馈
查看所有评论
版权声明:本文内容由互联网用户自发贡献或者转载,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 210093010@qq.com 举报,一经查实,本站将立刻删除。