|
| 1 | +# 一、前言 |
| 2 | + |
| 3 | +我曾经尝试在网上有不少学习算法的资料,但真的让我挺无语,要么就是太零散,要么就是笔记性质别人都看不懂。我这个纯靠自学的小童鞋,花了一年时间自己写一份算法小抄,总共 **60 多篇原创文章**,够通俗,绝不是简单的代码堆砌,下面有目录,质量如何,这里就不废话了。 |
| 4 | + |
| 5 | +### 使用方法 |
| 6 | + |
| 7 | +1. **先给本仓库点个 star,满足一下我的虚荣心**,文章质量绝对值你一个 star,给我一点继续写文的动力,感谢。 |
| 8 | +2. 可以在我的 gitbook 上直接查看所有文章,会持续更新:https://labuladong.gitbook.io/algo |
| 9 | +3. 可以关注我的公众号 labuladong,这些文章就是从公众号里整理出来的,目前主要发文平台是微信公众号,公众号后台回复关键词【电子书】可以获得这份小抄的电子书版本,方便你做笔记: |
| 10 | + |
| 11 | + |
| 12 | + |
| 13 | +其他的先不多说了,直接上干货吧。 |
| 14 | + |
| 15 | +# 二、文章目录 |
| 16 | + |
| 17 | +* 第一章、动态规划系列 |
| 18 | + * [动态规划详解](动态规划系列/动态规划详解进阶.md) |
| 19 | + * [动态规划答疑篇](动态规划系列/最优子结构.md) |
| 20 | + * [动态规划设计:最长递增子序列](动态规划系列/动态规划设计:最长递增子序列.md) |
| 21 | + * [经典动态规划:编辑距离](动态规划系列/编辑距离.md) |
| 22 | + * [经典动态规划:高楼扔鸡蛋](动态规划系列/高楼扔鸡蛋问题.md) |
| 23 | + * [经典动态规划:高楼扔鸡蛋(进阶)](动态规划系列/高楼扔鸡蛋进阶.md) |
| 24 | + * [动态规划之子序列问题解题模板](动态规划系列/子序列问题模板.md) |
| 25 | + * [动态规划之博弈问题](动态规划系列/动态规划之博弈问题.md) |
| 26 | + * [动态规划之KMP字符匹配算法](动态规划系列/动态规划之KMP字符匹配算法.md) |
| 27 | + * [团灭 LeetCode 股票买卖问题](动态规划系列/团灭股票问题.md) |
| 28 | + * [团灭 LeetCode 打家劫舍问题](动态规划系列/抢房子.md) |
| 29 | + * [贪心算法之区间调度问题](动态规划系列/贪心算法之区间调度问题.md) |
| 30 | + * [动态规划之四键键盘](动态规划系列/动态规划之四键键盘.md) |
| 31 | + * [动态规划之正则表达](动态规划系列/动态规划之正则表达.md) |
| 32 | + * [最长公共子序列](动态规划系列/最长公共子序列.md) |
| 33 | + |
| 34 | + |
| 35 | +* 第二章、数据结构系列 |
| 36 | + * [学习算法和刷题的思路指南](算法思维系列/学习数据结构和算法的高效方法.md) |
| 37 | + * [学习数据结构和算法看什么书](算法思维系列/为什么推荐算法4.md) |
| 38 | + * [二叉堆详解实现优先级队列](数据结构系列/二叉堆详解实现优先级队列.md) |
| 39 | + * [LRU算法详解](高频面试系列/LRU算法.md) |
| 40 | + * [二叉搜索树操作集锦](数据结构系列/二叉搜索树操作集锦.md) |
| 41 | + * [特殊数据结构:单调栈](数据结构系列/单调栈.md) |
| 42 | + * [特殊数据结构:单调队列](数据结构系列/单调队列.md) |
| 43 | + * [设计Twitter](数据结构系列/设计Twitter.md) |
| 44 | + * [递归反转链表的一部分](数据结构系列/递归反转链表的一部分.md) |
| 45 | + * [队列实现栈\|栈实现队列](数据结构系列/队列实现栈栈实现队列.md) |
| 46 | + |
| 47 | + |
| 48 | +* 第三章、算法思维系列 |
| 49 | + * [算法学习之路](算法思维系列/算法学习之路.md) |
| 50 | + * [回溯算法详解](算法思维系列/回溯算法详解修订版.md) |
| 51 | + * [二分查找详解](算法思维系列/二分查找详解.md) |
| 52 | + * [双指针技巧总结](算法思维系列/双指针技巧.md) |
| 53 | + * [滑动窗口技巧](算法思维系列/滑动窗口技巧.md) |
| 54 | + * [twoSum问题的核心思想](算法思维系列/twoSum问题的核心思想.md) |
| 55 | + * [常用的位操作](算法思维系列/常用的位操作.md) |
| 56 | + * [拆解复杂问题:实现计算器](数据结构系列/实现计算器.md) |
| 57 | + * [烧饼排序](算法思维系列/烧饼排序.md) |
| 58 | + * [前缀和技巧](算法思维系列/前缀和技巧.md) |
| 59 | + * [字符串乘法](算法思维系列/字符串乘法.md) |
| 60 | + * [FloodFill算法详解及应用](算法思维系列/FloodFill算法详解及应用.md) |
| 61 | + * [区间调度之区间合并问题](算法思维系列/区间调度问题之区间合并.md) |
| 62 | + * [区间调度之区间交集问题](算法思维系列/区间交集问题.md) |
| 63 | + * [信封嵌套问题](算法思维系列/信封嵌套问题.md) |
| 64 | + * [几个反直觉的概率问题](算法思维系列/几个反直觉的概率问题.md) |
| 65 | + * [洗牌算法](算法思维系列/洗牌算法.md) |
| 66 | + * [递归详解](算法思维系列/递归详解.md) |
| 67 | + |
| 68 | + |
| 69 | +* 第四章、高频面试系列 |
| 70 | + * [如何实现LRU算法](高频面试系列/LRU算法.md) |
| 71 | + * [如何高效寻找素数](高频面试系列/打印素数.md) |
| 72 | + * [如何计算编辑距离](动态规划系列/编辑距离.md) |
| 73 | + * [如何运用二分查找算法](高频面试系列/koko偷香蕉.md) |
| 74 | + * [如何高效解决接雨水问题](高频面试系列/接雨水.md) |
| 75 | + * [如何去除有序数组的重复元素](高频面试系列/如何去除有序数组的重复元素.md) |
| 76 | + * [如何寻找最长回文子串](高频面试系列/最长回文子串.md) |
| 77 | + * [如何k个一组反转链表](高频面试系列/k个一组反转链表.md) |
| 78 | + * [如何判定括号合法性](高频面试系列/合法括号判定.md) |
| 79 | + * [如何寻找消失的元素](高频面试系列/消失的元素.md) |
| 80 | + * [如何判断回文链表](高频面试系列/判断回文链表.md) |
| 81 | + * [如何在无限序列中随机抽取元素](高频面试系列/水塘抽样.md) |
| 82 | + * [如何调度考生的座位](高频面试系列/座位调度.md) |
| 83 | + * [Union-Find算法详解](算法思维系列/UnionFind算法详解.md) |
| 84 | + * [Union-Find算法应用](算法思维系列/UnionFind算法应用.md) |
| 85 | + * [什么是 session 和 cookie](技术/session和cookie.md) |
| 86 | + * [Linux的进程、线程、文件描述符是什么](技术/linux进程.md) |
| 87 | + * [一行代码就能解决的算法题](高频面试系列/一行代码解决的智力题.md) |
| 88 | + * [密码算法的前生今世](技术/密码技术.md) |
| 89 | + * [二分查找高效判定子序列](高频面试系列/二分查找判定子序列.md) |
| 90 | + |
| 91 | +# Donate |
| 92 | + |
| 93 | + |
0 commit comments