This warehouse will help you systematically master the algorithms and data structures that programmers must know.
This warehouse mainly has two branches :
master branch : The latest new branch, which is also the main branch for daily maintenance in the future, contains tutorials on algorithms and data structures.
Collections branch : The former main branch, which organized information on algorithms and data structures, is now used as an auxiliary branch: visit here
The algorithm part is basically completed, and there are still many unfinished parts of the data structure . We will speed up the improvement when we are free.
Table of contents:
- Algorithm
- Data structure
- Practice questions
Algorithm
- 1. Complexity analysis
- 2. High-precision algorithm
- 3. Sorting algorithm
- 4. Recursive Algorithm
- 5. Recursive Algorithm
- 6. Divide and Conquer Algorithm
- 7. Greedy Algorithm
- 8. Breadth-first search algorithm
- 9. Depth-first search algorithm
- 10. Backtracking algorithm
- 11. Dynamic programming
- 12. String algorithm
Data structure
- 1. Stack
- 2. Queue
- 3. Tree
- 4. Heap
- 5. Graph theory algorithm
- 6. Combined search
- 7. Minimum spanning tree
- 8. Topological sorting and critical path
- 9. Line segment tree
- 10. Tree Array
Practice questions
After mastering important algorithms and data structures, you need to practice and consolidate them
Website choice?
Recommended LeetCode , visit here
What questions should I study?
If you ’re short on time : Here are LeetCode ’s top recommendations :
For example: Leetcode Hot 100 and LeetCode Selected TOP Interview Questions
If you have enough time : you can practice systematically according to the following categories:
- Topic 1: Array (
Chapter1_Array
) - Topic 2: Linked List (
Chapter2_list
) - Topic 3: String (
Chapter3_String
) - Topic 4: Stack (
Chapter4_Stack
) - Topic 5: Tree (
Chapter5_Tree
) - Topic 6: Sorting (
Chapter6_Sort
) - Topic 7: Search (
Chapter7_Search
) - Topic 8: Violent Solution (
Chapter8_Violence
) - Topic 9: BFS (
Chapter9_BFS
) - Topic 10: DFS (
Chapter10_DFS
) - Topic 11: Divide and Conquer (
Chapter11_Paritition
) - Topic 12: Greedy (
Chapter12_Greedy
) - Topic 13: Dynamic Programming (
Chapter13_DP
) - Topic 14: Graph (
Chapter14_Graph
) - Topic 15: Unspecific Type (
Chapter15_Unspecific
)
practice strategies
- The first pass : Think first . If you have no idea, you can look at the problem solutions and combine them with other people's problem solutions. Summarize whether you have problems with your thinking, or whether you have problems with the algorithm and data structure. Master the type of question, the way of thinking, and the optimal solution.
- The second time : recall the optimal solution , try to write it directly , compare it with the solutions you have written before, and summarize the problems and methods.
- The third time : Improve the speed of answering questions and solve multiple problems for one question . After taking out a question, you can know the focus of the examination and the method of solving the problem, write the answer in a short time, and think of multiple solutions.