本仓库带你系统掌握程序员必知必会的算法和数据结构
本仓库主要有两个分支:
- master分支:最近的新分支,也是以后日常维护的主分支,内容为算法和数据结构的教程。
- Collections 分支:以前的主分支,整理了算法和数据结构的资料,现作为辅助分支:这里访问
算法部分基本完成,数据结构还有很多未完成部分,空闲时会加快完善
目录:
算法篇
数据结构篇
刷题练习篇
在掌握了重要的算法和数据结构之后,需要练习巩固
网站的选择?
推荐 LeetCode,这里访问
刷哪些题目?
- 如果你时间紧张:可以练习LeetCode的热门推荐:比如:Leetcode 热题 Hot 100 和 LeetCode 精选 TOP 面试题
- 如果你时间充裕:可以按以下分类,系统练习:
- 专题一:数组(
Chapter1_Array
) - 专题二:链表(
Chapter2_list
) - 专题三:字符串(
Chapter3_String
) - 专题四:栈(
Chapter4_Stack
) - 专题五:树(
Chapter5_Tree
) - 专题六:排序(
Chapter6_Sort
) - 专题七:查找(
Chapter7_Search
) - 专题八:暴力解法(
Chapter8_Violence
) - 专题九:BFS(
Chapter9_BFS
) - 专题十:DFS(
Chapter10_DFS
) - 专题十一:分治(
Chapter11_Paritition
) - 专题十二:贪心(
Chapter12_Greedy
) - 专题十三:动态规划(
Chapter13_DP
) - 专题十四:图(
Chapter14_Graph
) - 专题十五:不定类型(
Chapter15_Unspecific
)
- 专题一:数组(
练习策略
- 第一遍:先思考,如果没思路,可以看题解,结合其他人的题解刷。总结自己是否在思路上有问题,或者是否算法与数据结构基础上有问题,掌握本题的类型,思考方式,最优题解。
- 第二遍:回忆最优解法,尝试直接写,并与之前自己写过的解答作比对,总结问题和方法。
- 第三遍:提升刷题速度和一题多解,拿出一个题,就能够知道其考察重点,解题方法,在短时间内写出解答,并且思考多种解决办法。
注:请查看原文链接: https://github.com/Xunzhuo/Algorithm-Guide
推荐编程学习路径网站:https://github.com/kamranahmedse/developer-roadmap