Este armazém irá ajudá-lo a dominar sistematicamente os algoritmos e estruturas de dados que os programadores devem conhecer.
Este armazém possui principalmente duas filiais :
branch master : O branch mais recente, que também é o branch principal para manutenção diária no futuro, contém tutoriais sobre algoritmos e estruturas de dados.
Ramo de coleções : O antigo ramo principal, que organizava informações sobre algoritmos e estruturas de dados, agora é utilizado como ramo auxiliar: acesse aqui
A parte do algoritmo está basicamente concluída e ainda há muitas partes inacabadas da estrutura de dados . Iremos acelerar a melhoria quando estivermos livres.
Índice:
- Algoritmo
- Estrutura de dados
- Perguntas práticas
Algoritmo
- 1. Análise de complexidade
- 2. Algoritmo de alta precisão
- 3. Algoritmo de classificação
- 4. Algoritmo Recursivo
- 5. Algoritmo Recursivo
- 6. Algoritmo de Divisão e Conquista
- 7. Algoritmo ganancioso
- 8. Algoritmo de pesquisa em largura
- 9. Algoritmo de pesquisa em profundidade
- 10. Algoritmo de retrocesso
- 11. Programação dinâmica
- 12. Algoritmo de string
Estrutura de dados
- 1. Pilha
- 2. Fila
- 3. Árvore
- 4. Pilha
- 5. Algoritmo da teoria dos grafos
- 6. Pesquisa combinada
- 7. Árvore geradora mínima
- 8. Classificação topológica e caminho crítico
- 9. Árvore de segmento de linha
- 10. Matriz de Árvore
Perguntas práticas
Depois de dominar algoritmos e estruturas de dados importantes, você precisa praticá-los e consolidá-los
Escolha do site?
LeetCode recomendado, visite aqui
Que questões devo estudar?
Se você tiver pouco tempo : Aqui estão as principais recomendações do LeetCode :
Por exemplo: Leetcode Hot 100 e LeetCode Selected TOP Interview Questions
Se tiver tempo suficiente : você pode praticar sistematicamente de acordo com as seguintes categorias:
- Tópico 1: Matriz (
Chapter1_Array
) - Tópico 2: Lista vinculada (
Chapter2_list
) - Tópico 3: String (
Chapter3_String
) - Tópico 4: Pilha (
Chapter4_Stack
) - Tópico 5: Árvore (
Chapter5_Tree
) - Tópico 6: Classificação (
Chapter6_Sort
) - Tópico 7: Pesquisa (
Chapter7_Search
) - Tópico 8: Solução Violenta (
Chapter8_Violence
) - Tópico 9: BFS (
Chapter9_BFS
) - Tópico 10: DFS (
Chapter10_DFS
) - Tópico 11: Dividir e Conquistar (
Chapter11_Paritition
) - Tópico 12: Ganancioso (
Chapter12_Greedy
) - Tópico 13: Programação Dinâmica (
Chapter13_DP
) - Tópico 14: Gráfico (
Chapter14_Graph
) - Tópico 15: Tipo inespecífico (
Chapter15_Unspecific
)
estratégias de prática
- A primeira etapa : Pense primeiro . Se você não tem ideia, pode examinar as soluções dos problemas e combiná-las com as soluções dos problemas de outras pessoas. Resuma se você tem problemas com seu pensamento ou com o algoritmo e a estrutura de dados. Domine o tipo de pergunta, a forma de pensar e a solução ideal.
- Na segunda vez : lembre-se da solução ideal , tente escrevê-la diretamente , compare-a com as soluções que você escreveu antes e resuma os problemas e métodos.
- Terceira vez : Melhore a velocidade de resposta às perguntas e resolva vários problemas para uma pergunta . Depois de tirar uma pergunta, você poderá saber o foco do exame e o método de resolução do problema, escrever a resposta em pouco tempo e pensar. de múltiplas soluções.