快来算法吧
说明:这个网站的通知功能并不好,很多大家的留言我都不能及时看到,所以大家如果有什么问题急需我反馈的话,可以加我的微信 13671597056,平常聊聊天也是可以的。就是不要找我做新题(有好的问题推荐给我,我还是很欢迎的,就是不要给我推荐偏竞赛的,面试笔试都不会考的问题,我做这些问题、讲解这些问题意义不大),很多题目我都不会做。我只是更多时候站在初学者的角度讲解问题,讲得更细致一点,感谢大家理解和支持!
图片裂掉了,大家就直接点击「题解链接」,到「力扣」网上看图就可以了,实在不行就再联系我。
# 📝 变更日志
# 2022 年 6 月 16 日(星期四)
- 临时添加了「力扣」第 3 题(无重复字符的最长子串)的视频题解,地址 (opens new window)。
# 2022 年 5 月 5 日(星期四)
- 补充了「快速排序」总结:B 站地址 (opens new window);
- 添加了 负雪明烛的网站 (opens new window) 为友情链接。
# 2022 年 5 月 1 日(星期日)
- 在 B 站上传了《快速排序 (opens new window)》,一共 9 个视频,并且更新了 快速排序 (opens new window) 专题的内容。
好消息:「算法吧」于 2022 年 1 月 25 日(星期二)通过了通信管理局域名备案,并申请了 SSL 证书,「算法吧」部署在了国内的服务器上,可以通过 https://suanfa8.com (opens new window) 和 https://www.suanfa8.com (opens new window) 访问了。
祝各位朋友们五一假期愉快!劳动者光荣。
祝愿在上海的朋友们和全国各地的朋友们能平安度过疫情,祝愿深陷俄罗斯和乌克兰战火的同胞们能幸免于难!
「算法吧」是什么?
- 这是一个算法与数据结构的入门教程,使用 vuepress-theme-hope (opens new window) 构建,部署在阿里云服务器上(于 2022 年 1 月 16 日从 GitHub pages 迁移到 Docker 容器中运行的 nginx 服务);
- 我编写题解、录制视频,主要针对初学的朋友,用于帮助初学的朋友们 入门学习算法。我会花很多时间清楚算法的来龙去脉、设计思想和原理。很少涉及高级、晦涩难懂的知识点,在讲解专有名词的时候,我会加上自己的理解和对应的通俗易懂的代替词。有了算法与数据结构的基础知识以后,高级算法与高级数据结构读者可以自行寻找资料进行学习;
- 汇总了从 2019 年 6 月至今,我在学习算法的过程中写下的知识点总结、题解、录制的视频题解,现在赠送给你。
刷题建议
- 使用「力扣」中文版的朋友,阅读题目的时候,需要点击到英文的界面,看看「Constraints」,知道数据范围。有一些题目中文题面没有同步更新。数据范围很多时候决定了这道题可以使用什么样的算法与数据结构;
- 理解一个问题的解法,一定要知道为什么,想清楚问题的思路,这样是更有效的,不可以记住问题的解法;
- 有些问题的解法想不到很正常,把它当做例题来学习就可以;
- 调试 可以解决绝大多数问题,如果有问题的话可以先自己思考、再看题解区。只要足够有耐心、勤于思考、认真调试,所有的问题都能得到解答;
- 我遇见的刷题的朋友,都可以自己通过学习解决遇到的算法问题,我们遇到的「力扣」上的问题,即使不会做,都会有大佬分享题解。有一些题解看不明白没有关系:
- 首先想清楚这篇题解是不是适合自己,如果不适合自己完全可以不看;
- 如果是自己想要的题解,看不懂,可能是自己有一些知识的缺陷,花一点时间学习,一定能搞懂的。
- 算法很有用,做算法题可以帮助我们理解算法知识点,通过面试,但是会做算法题也许没什么大用,可以看看 ACM 大佬是怎么说的:软件工程师和算法竞赛 (opens new window);
- 刷题终究是「会做题」,不会做算法题真的没有什么关系,其它优点突出,能帮助我们找到适合自己的工作和平台,发挥价值就可以,不会做题的大佬我相信有很多很多;
- 做算法题需要大量的时间,一个标签的问题不需要全部做完,不要完美主义,完美主义会浪费很多时间。
说明
- 本站为公益项目,内容开源,可以随意取用,转载需注明来源,请勿商用;
- 时间精力有限,有错误和不足之处在所难免,反馈请到 留言反馈 (opens new window);
- 网站的内容比较多,最近在做格式调整,如果您发现格式太乱,影响阅读,可以在本项目的 issue (opens new window) 留言,把链接贴一下,我看到了会处理的,感谢您的支持。
欢迎来到「算法吧」
- 坚持分享不易,且本站不收费,即使是写刷题的东西,我已经尽力做了,但不可能满足所有朋友的要求,欢迎大家提建议和意见,但请不要提太多要求,珍惜彼此时间。恶意留言和评论均不会理会哦;
- 祝愿来到算法吧的朋友,以后都能发大财,不为钱的事情而烦恼,如果有机会,还可以回馈家庭和社会、帮助他人。
# 2022 年 3 月 23 日(星期三)
- 添加了「自我介绍」视频(不是面试的自我介绍指导视频),你可以在视频里看到我。可以在 视频讲解 (opens new window) 页面看到这个视频。
# 2022 年 3 月 8 日(星期二)
- 在 B 站上传了《归并排序习题集 (opens new window)》,一共 7 个视频。
# 2022 年 2 月 7 日(星期一)
- 在「快速排序的优化(避免递归树倾斜) (opens new window)」这一节的末尾加上了「解释最后为什么交换 left 与 ge」。
# 2022 年 1 月 26 日(星期三)
- 把「二分查找」视频的 http 服务改成了 https 服务,并且通过域名访问。
# 2022 年 1 月 20 日(星期四)
上传了「二分查找」精讲的知识点的视频讲解,地址在 http://8.142.32.34/binary-search/videos/01/ (opens new window),这部分视频没有在 B 站上传(因为归并排序的练习和快速排序的练习还没有录出来)。
# 2022 年 1 月 13 日(星期四)
- 使用 vscode 的自动格式化功能,把 markdown 文件的格式进行了统一的调整;
- 为有视频的题解和知识点讲解增加了视频和观看视频的提示。
「算法吧」暂停大的更新啦!
到今天为止,「算法吧」绝大多数内容已经完成,作者该去做别的事情了,当然「算法吧」还有很多问题,等待以后的时间里慢慢完善,感谢朋友们的支持!
# 2022 年 1 月 12 日(星期三)
- 针对读者提出的格式建议进行了修改;
- 把「二分查找」和「单调栈」的题解格式进行了进一步的修改:
- 检查了标题的级别是否正确;
- 粘贴力扣的题面的时候,把数据范围里出现
104
、105
的地方修改成10^4
、10^5
或者 、。
# 2021 年 12 月 28 日至 2022 年 1 月 11 日
- 针对「专题精讲」 27 个专题的题解进行了格式的统一调整,很繁琐,消耗了很多时间;
- 在本项目 github 的 commits (opens new window) 可以看到具体的提交,在这里就不重复粘贴了。
# 2021 年 12 月 28 日(星期一)
- 添加了「哈希表」「拓扑排序」,调整了大多数题解的格式;
- 删除了还未整理好的专题链接。
# 2021 年 12 月 27 日(星期天)
- 把「精选题解」去掉了,取代的是每一个专题的精讲,并且安排了顺序。
# 2021 年 12 月 25 日(星期六)
- 添加了「栈」「队列」「优先队列」「哈希表」的习题(只初步做了格式处理,工作量巨大)。
# 2021 年 12 月 24 日(星期五)
- 添加了「滑动窗口」的练习分类(完成 90%);
- 添加了「双指针」的练习分类。
# 2021 年 12 月 23 日(星期四)
- 添加了「回溯算法」的练习分类(未完成,工作量巨大);
- 添加了「滑动窗口」的练习分类。
# 2021 年 12 月 22 日(星期三)
- 恢复了「链表」专栏,添加了「闲聊」专栏;
- 添加了一些杂七杂八的文章;
- 调整了 build 的内存大小;
- 修正了「最长公共子序列」的题解链接。
# 2021 年 12 月 21 日(星期二)
- 补充了「链表问题分类」专栏里的练习题,已经完成 80% 的内容。
# 2021 年 12 月 20 日(星期一)
- 添加了「链表问题分类」专栏;
- 添加了「二分查找」的「最大值极小化」的题解。
# 2021 年 12 月 19 日(星期天)
- 添加了「动态规划精讲」专栏的「背包问题」和「树形 DP 问题」;
- 「动态规划精讲」内容整理、格式调整、二次审核(耗时很长、需要慢慢做);
- 把导航栏的「精讲」合并在一起,添加了「视频题解」列表。
# 2021 年 12 月 18 日(星期六)
- 重新汇总了「二分查找」习题列表;
- 添加了一些「动态规划」问题的题解。
# 2021 年 12 月 17 日(星期五)
- 「二分查找精讲」专栏增加了第 4 节(二分查找万能模板)的内容;
- 把「二分查找精讲」专栏里的习题做了进一步的分类;
- 更新了「精选题解」里 3 道「滑动窗口」的题目。
# 2021 年 12 月 16 日(星期四)
- 重写了「力扣」第 35 题 题解 (opens new window) ,把一些常见的问题做了汇总;
- 重修了「二分查找精讲」专栏,做了一些修修补补的工作。
# 2021 年 12 月 15 日(星期三)
- 添加了「并查集精讲」专栏;
- 把第 1 章递归、时间复杂度、循环不变量的内容做了精简与合并;
- 添加了「并查集精讲」的练习,并没有做进一步整理和顺序调整;
- 把「并查集精讲」的练习做了一些格式上的调整,并且增加了「总结」的内容;
- 把「图论」的内容放在了导航栏;
- 添加了「优先队列精讲」导航。
还没有完成的事情是:
# 2021 年 12 月 14 日(星期二)
- 修改了「树状数组」「线段树」「字典树」的格式;
- 给「二分查找精讲」增加了一些学习态度上的话;
- 把主页侧边栏进行了重新分类,只设置二级目录,便于学习和阅读。
# 2021 年 12 月 13 日(星期一)
- 重新编写了「动态规划」精讲专栏的第 1 到 9 节的内容,每一节内容做到足够精简和主题明确;
- 重新编写了「字典树」部分的 5 节内容;
- 补充了「线段树」部分的 4 节内容,但是格式还未做修改;
- 补充了「树状数组」部分的 4 节内容,但是格式还未做修改;
- 给「二分查找」专栏添加了一些阅读提示。
# 2021 年 12 月 12 日(星期天)
- 更换了「二分查找」两边夹的动画,使得「
left
和right
向中间靠拢」的语义体现得更清晰; - 重新编写了「二分查找」精讲专栏的第 6 节和第 7 节。第 8 节和第 9 节把标题写了;
- 把侧边栏的「二分查找」的内容合并到「导航栏」的「二分查找精讲」,「侧边栏」只保留了「习题列表」;
- 重新编写了「二分查找」精讲专栏的第 9 节、第 10 节,这部分内容已经完结。
# 2021 年 12 月 11 日(星期六)
- 重新编写了「二分查找」精讲专栏的第 1 到 3 节,并且增加了第 10 节的内容《从学习「二分查找」窥见算法学习的一般方法》;
- 重新编写了「二分查找」精讲专栏的第 4 节和第 5 节;
- 把「最小生成树」划分了章节,使得每一部分知识最小化,便于阅读。
# 2021 年 12 月 10 日(星期五)
- 添加了「二分查找」「动态规划」专栏;
- 确立了写作要点:拆分细致、图文并茂、思维导图、先自动编号、以后再确定标题的 url;
- 把「按分类查找」「按标签查找」「时间线」作为网站功能在「导航栏」进行了合并。
# 2021 年 12 月 8 日(星期三)
- 把「侧边栏」23 个章节分成了 5 个部分,避免太长的列表,让读者感觉很不舒服;
- 添加了「算法吧导引」(思维导图)和刷题建议。
# 2021 年 12 月 7 日(星期二)
- 对内容做了较详细的划分,尽量让每一章的内容较少;
- 编排目录,链接到「力扣」,而不做复制粘贴,制作这个网站只是想起到分类索引的目的。
# 「力扣」主页签名
- 很认真写题解,不追求数量。写题解的目的:知识分享、交流和科普,帮助初学者入门和掌握必要的算法与数据结构知识;
- 所以不会写偏题、难题和有难度、技巧的问题。祝愿各位朋友都能找到自己满意的工作! 如果有问题的话可以先自己思考、再看评论区。只要足够有耐心、勤于思考、认真调试,所有的问题都能得到解答;
- 不是大佬,不是老师,叫名字就可以。我没有时间做题了,很少会看留言和评论。 私信请不要讨论具体的问题和细节,我不是做题高手。可以聊天、吹牛啥的。 要想深入学习算法,看《算法 4》和《算法导论》(这两本书不教做题),如果只是想过面试,直接做题、看题解。 不用关注和点赞,已经够多了,常见的基础问题下面很容易找到我的题解。