fucking-algorithm
fucking-algorithm copied to clipboard
手把手撕LeetCode题目,扒各种算法套路的裤子。English version supported! Crack LeetCode, not only how, but also why.
English version repo and Gitbook is on english branch. Just enjoy:)
前言
本仓库总共 60 多篇原创文章,基本上都是基于 LeetCode 的题目,涵盖了所有题型和技巧,而且一定要做到举一反三,通俗易懂,绝不是简单的代码堆砌,后面有目录。
我先吐槽几句。刷题刷题,刷的是题,培养的是思维,本仓库的目的就是传递这种算法思维。我要是只写一个包含 LeetCode 题目代码的仓库,有个锤子用?没有思路解释,没有思维框架,顶多写个时间复杂度,那玩意一眼就能看出来。
只想要答案的话很容易,题目评论区五花八门的答案,动不动就秀 python 一行代码解决,有那么多人点赞。问题是,你去做算法题,是去学习编程语言的奇技淫巧的,还是学习算法思维的呢?你的快乐,到底源自复制别人的一行代码通过测试,已完成题目 +1,还是源自自己通过逻辑推理和算法框架不看答案写出解法?
网上总有大佬喷我,说我写这玩意太基础了,根本没必要啰嗦。我只能说大家刷算法就是找工作吃饭的,不是打竞赛的,我也是一路摸爬滚打过来的,我们要的是清楚明白有所得,不是故弄玄虚无所指。不想办法做到通俗易懂,难道要上来先把《算法导论》吹上天,然后把人家都心怀敬仰地劝退?别的不说,公众号几万读者,PDF 版本上万次下载,联系我的出版社都好几家,说明质量还过得去吧?
做啥事情做多了,都能发现套路的,我把各种算法套路框架总结出来,相信可以帮助其他人少走弯路。我这个纯靠自学的小童鞋,花了一年时间刷题和总结,自己写了一份算法小抄,后面有目录,这里就不废话了。
使用方法
1、先给本仓库点个 star,满足一下我的虚荣心,文章质量绝对值你一个 star。我还在继续创作,给我一点继续写文的动力,感谢。
2、可以在我的 Gitbook 或者 GitHub pages 或者 我的知乎 上查看所有文章,公众号更新后会尽快更新网页,建议收藏方便电脑端查看文章(之所以同时搞 Gitbook 和 GitHub pages,是因为有的地区的读者反映 Gitbook 经常加载不出来,你可以自行选择):
Gitbook 地址(推荐):https://labuladong.gitbook.io/algo/
GitHub page 地址:https://labuladong.github.io/ebook/
3、可以关注我的公众号 labuladong 及时获取更新。我不喜欢转载乱七八糟的低质文章,坚持高质量原创,说是最良心最硬核的技术公众号都不为过。
本仓库的文章就是从公众号里整理出来的一部分内容,我主要发文平台是微信公众号,公众号后台回复关键词【电子书】可以获得这份小抄的电子书版本,方便你做笔记;回复【加群】可以加入我们的刷题群,和大家一起讨论算法问题,分享内推机会:

其他的先不多说了,直接上干货吧,我们一起日穿 LeetCode,感受一下支配算法的乐趣。
PS:如果想下载此仓库到本地学习,不要用 git 命令下载,点击 GitHub 网页上的下载按钮直接下载 zip 文件,这样就不会下载 git 历史,大大加快下载速度。
目录
- 第零章、必读系列
- 学习算法和刷题的框架思维
- 学习数据结构和算法读什么书
- 动态规划解题框架
- 动态规划答疑篇
- 回溯算法解题框架
- 二分查找解题框架
- 滑动窗口解题框架
- 双指针技巧解题框架
- Linux的进程、线程、文件描述符是什么
- Git/SQL/正则表达式的在线练习平台
- 第一章、动态规划系列
- 动态规划详解
- 动态规划答疑篇
- 动态规划设计:最长递增子序列
- 编辑距离
- 经典动态规划问题:高楼扔鸡蛋
- 经典动态规划问题:高楼扔鸡蛋(进阶)
- 动态规划之子序列问题解题模板
- 动态规划之博弈问题
- 贪心算法之区间调度问题
- 动态规划之KMP字符匹配算法
- 团灭 LeetCode 股票买卖问题
- 团灭 LeetCode 打家劫舍问题
- 动态规划之四键键盘
- 动态规划之正则表达
- 最长公共子序列
- 第二章、数据结构系列
- 学习算法和刷题的思路指南
- 学习数据结构和算法读什么书
- 二叉堆详解实现优先级队列
- LRU算法详解
- 二叉搜索树操作集锦
- 特殊数据结构:单调栈
- 特殊数据结构:单调队列
- 设计Twitter
- 递归反转链表的一部分
- 队列实现栈|栈实现队列
- 第三章、算法思维系列
- 算法学习之路
- 回溯算法详解
- 回溯算法团灭排列、组合、子集问题
- 二分查找详解
- 双指针技巧总结
- 滑动窗口技巧
- twoSum问题的核心思想
- 常用的位操作
- 拆解复杂问题:实现计算器
- 烧饼排序
- 前缀和技巧
- 字符串乘法
- FloodFill算法详解及应用
- 区间调度之区间合并问题
- 区间调度之区间交集问题
- 信封嵌套问题
- 几个反直觉的概率问题
- 洗牌算法
- 递归详解
- 第四章、高频面试系列
- 如何实现LRU算法
- 如何高效寻找素数
- 如何计算编辑距离
- 如何运用二分查找算法
- 如何高效解决接雨水问题
- 如何去除有序数组的重复元素
- 如何寻找最长回文子串
- 如何k个一组反转链表
- 如何判定括号合法性
- 如何寻找消失的元素
- 如何寻找缺失和重复的元素
- 如何判断回文链表
- 如何在无限序列中随机抽取元素
- 如何调度考生的座位
- Union-Find算法详解
- Union-Find算法应用
- 一行代码就能解决的算法题
- 二分查找高效判定子序列
- 第五章、计算机技术
- Linux的进程、线程、文件描述符是什么
- 一文看懂 session 和 cookie
- 关于 Linux shell 你必须知道的
- 加密算法的前身今世
- Git/SQL/正则表达式的在线练习平台
感谢如下大佬参与翻译
按照昵称字典序排名:
ABCpril, andavid, bryceustc, build2645, CarrieOn, cooker, Dong Wang, ExcaliburEX, floatLig, ForeverSolar, Fulin Li, Funnyyanne, GYHHAHA, Hi_archer, Iruze, Jieyixia, Justin, Kevin, Lrc123, lriy, Lyjeeq, MasonShu, Master-cai, miaoxiaozui2017, natsunoyoru97, nettee, PaperJets, qy-yang, realism0331, SCUhzs, Seaworth, shazi4399, ShuozheLi, sinjoywong, sunqiuming526, Tianhao Zhou, timmmGZ, tommytim0515, upbin, wadegrc, walsvid, warmingkkk, Wonderxie, wsyzxxxx, xiaodp, youyun, yx-tan, Zero, Ziming
Donate
如果本仓库对你有帮助,可以请作者喝杯速溶咖啡
