# Algorithm-100-Days **Repository Path**: yeahnoob_admin/Algorithm-100-Days ## Basic Information - **Project Name**: Algorithm-100-Days - **Description**: Mirror of https://github.com/geekxh/Algorithm-100-Days - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-21 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Algorithm - 100天摆脱算法小白 > **作者**:小浩 > > **说明**:我曾发起一个项目 [hello-algorithm](https://github.com/geekxh/hello-algorithm),从上线到获得 8k star 只用了不到半个月的时间,且登上过 github trending 日榜榜首的位置。但是该项目在我看来却有一定局限性,由于资源性质过重,并不能让大家真正参与进来。同时,也没有系统的给出一套完整的算法训练步骤。在这样的背景下,我重新创建了现在这个项目:Algorithm-100-Days,期望可以提供**一套完整的算法训练,并对每一节学习内容都提供了视频**。 > > 同时该项目也会尽可能的提供算法相关学习资料,包括但不限于:国内外优质算法算法视频(Youtube、Bilibili)、算法相关书籍下载(百度云)、算法面试题目汇总(leetcode、flag、bat)、算法题目源码解析(我会尽可能组织更多的人来提供代码以及代码分析) > > *最后:所有对该项目有兴趣的人,都可以参与进来,你的任何行为都可以使你成为 contributor。哪怕只是提供一个学习链接!* ### 如何进行学习? 1、通过阅读文档,进行基础知识的学习。 2、通过文档下方的视频链接,进行内容巩固。 3、通过代码,进行提升。 ### 如何运行代码: ``` 第一步:安装依赖文件 npm install 第二步:测试单一文件 npm test -- 'LinkedList' 第三步:测试全部 npm test ``` ### 提示 > 数据结构和算法的学习主要在于思想的掌握,并不需要纠结语言层面的东西。 难度 A:基础 B:进阶 | 学习目录 | 难度 | 描述 | | --- | --- | --- | | [01.数据结构和算法的重要性](./Day01-17/01-1.数据结构和算法的重要性.md) | A | | | [02.链表](./Day01-17/02.链表.md) | A | | | [03.双向链表](./Day01-17/03.双向链表.md) | A | | | [04.队列](./Day01-17/04.队列.md) | A | | | [05.栈](./Day01-17/05.栈.md) | A | | | [06.哈希表](./Day01-17/06.哈希表.md) | A | | | [07.堆](./Day01-17/07.堆.md) | A | | | [08.优先队列](./Day01-17/08.优先队列.md) | B | | | [09.字典树](./Day01-17/09.字典树.md) | B | | | [10.树](./Day01-17/10.树.md) | A | | | [11.二叉搜索树](./Day01-17/11.二叉搜索树.md) | A | | | [12.AVL树](./Day01-17/12.AVL树.md) | B | | | [13.红黑树](./Day01-17/13.红黑树.md) | B | | | [14.树状数组](./Day01-17/14.树状数组.md) | B | | | [15.图](./Day01-17/15.图.md) | A | | | [16.并查集](./Day01-17/16.并查集.md) | B | | | [17.布隆过滤器](./Day01-17/17.布隆过滤器.md) | B | | | [18.笛卡尔积]() | | | | [19.洗牌算法]() | | | | [20.子集]() | | | | [21.排列]() | | | | [22.组合]() | | | | [23.最长公共子序列]() | | | | [24.最长递增子序列]() | | | | [25.最短公共父序列]() | | | | [26.背包问题]() | | | | [27.最大子数列问题]() | | | | [28.组合求和]() | | | | [29.汉明距离]() | | | | [30.莱温斯坦距离]() | | | | [31.KMP]() | | | | [32.Sun./Day]() | | | | [33.字符串快速查找]() | | | | [34.Rabin Karp 算法]() | | | | [35.最长公共子串]() | | | | [36.正则表达式匹配]() | | | | [37.线性搜索]() | | | | [38.跳转搜索]() | | | | [39.二分查找]() | | | | [40.插值搜索]() | | | | [41.冒泡排序]() | | | | [42.选择排序]() | | | | [43.插入排序]() | | | | [44.堆排序]() | | | | [45.归并排序]() | | | | [46.快速排序]() | | | | [47.希尔排序]() | | | | [48.计数排序]() | | | | [49.基数排序]() | | | | [50.链表遍历]() | | | | [51.链表反转]() | | | | [52.树的深搜]() | | | | [53.树的广搜]() | | | | [54.图的深搜]() | | | | [55.图的广搜]() | | | | [56.寻找加权无向图的最小生成树]() | | | | [57.找到图中所有顶点的最短路径]() | | | | [58.找到所有顶点对之间的最短路径]() | | | | [59.判圈算法]() | | | | [60.寻找加权无向图的最小生成树]() | | | | [61.拓扑排序]() | | | | [62.Tarjan算法]() | | | | [63.Fleury算法]() | | | | [64.哈密顿图]() | | | | [65.旅行推销员问题]() | | | | [70.欧几里得算法]() | | | | [71.最小公倍数]() | | | | [72.素数筛]() | | | | [73.判断2次方数]() | | | | [74.杨辉三角形]() | | | | [75.复数]() | | | | [76.弧度和角]() | | | | [77.位操作]() | | | | [78.阶乘]() | | | | [79.斐波那契数]() | | | | [80.素数检测]() | | | | [81.LRU算法]() | | | | [82.八皇后问题]() | | | | [83.骑士巡逻]() | | | | [84.递归楼梯]() | | | | [85.旋转矩阵]() | | | | [86.跳跃游戏]() | | | | [87.雨水收集]() | | | | [88.汉诺塔]() | | | | [89.递推DP]() | | | | [90.背包九讲]() | | | | [91.LIS]() | | | | [92.LCS]() | | | | [93.区间DP]() | | | | [94.树形DP]() | | | | [95.数位DP]() | | | | [96.概率DP]() | | | | [97.状压DP]() | | | | [98.结构DP]() | | | | [99.DP总结]() | | | | [100.毕业证书]() | | |