Este README fornece uma visão geral dos principais tópicos em Estrutura de Dados e Algoritmos, organizados de forma hierárquica para facilitar o aprendizado.
Base para muitos algoritmos e estruturas de dados. Usado para armazenar coleções de elementos.
Técnica usada para problemas que envolvem arrays ou listas. Comumente usada para encontrar pares ou subarrays que atendem a certas condições.
Estrutura de dados LIFO (Last In, First Out). Usada para problemas que envolvem a necessidade de rastrear o histórico ou estados anteriores.
Algoritmo eficiente para encontrar elementos em arrays ordenados. Divide repetidamente o espaço de busca pela metade.
Técnica usada para problemas que envolvem subarrays ou substrings. Útil para encontrar máximos, mínimos ou médias em subarrays de tamanho fixo.
Estrutura de dados linear onde cada elemento aponta para o próximo. Útil para inserções e deleções eficientes.
Estrutura de dados hierárquica com um nó raiz e nós filhos. Usada em muitos algoritmos de busca e ordenação.
Árvore especializada usada para armazenar um grande conjunto de strings. Útil para buscas rápidas de prefixos.
Estrutura de dados especializada para acessar o elemento mínimo ou máximo rapidamente. Usada em algoritmos como o de Dijkstra.
Usado em problemas que envolvem intervalos de tempo ou espaço. Comumente usado em problemas de agendamento.
Algoritmo que faz a escolha local ótima em cada etapa. Usado em problemas como o de troca de moedas ou mochila.
Técnica para resolver problemas de decisão, explorando todas as possibilidades. Usada em problemas como o das N Rainhas ou Sudoku.
Estrutura de dados que representa relações entre pares de objetos. Usado em algoritmos de busca e caminhos mínimos.
Algoritmos avançados como Fluxo Máximo, Caminho Mínimo, etc. Usados em problemas complexos de redes.
Técnica de otimização que resolve problemas dividindo-os em subproblemas menores. Usada em problemas como Fibonacci, subsequência crescente máxima, etc.
Extensão da DP para duas dimensões. Usada em problemas como alinhamento de sequências, mochila 2D, etc.
Algoritmos que envolvem conceitos matemáticos ou geométricos. Usados em problemas de otimização espacial e cálculos matemáticos.
Técnica que envolve operações bit a bit. Usada em problemas que requerem eficiência no espaço ou em algoritmos criptográficos.