/cs

Primary LanguageTypeScript

Estrutura de Dados e Algoritmos

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.

Tópicos Principais

Arrays & Hashing

Base para muitos algoritmos e estruturas de dados. Usado para armazenar coleções de elementos.

Two Pointers (Dois Ponteiros)

Técnica usada para problemas que envolvem arrays ou listas. Comumente usada para encontrar pares ou subarrays que atendem a certas condições.

Stack (Pilha)

Estrutura de dados LIFO (Last In, First Out). Usada para problemas que envolvem a necessidade de rastrear o histórico ou estados anteriores.

Binary Search (Busca Binária)

Algoritmo eficiente para encontrar elementos em arrays ordenados. Divide repetidamente o espaço de busca pela metade.

Sliding Window (Janela Deslizante)

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.

Linked List (Lista Ligada)

Estrutura de dados linear onde cada elemento aponta para o próximo. Útil para inserções e deleções eficientes.

Trees (Árvores)

Estrutura de dados hierárquica com um nó raiz e nós filhos. Usada em muitos algoritmos de busca e ordenação.

Tries

Árvore especializada usada para armazenar um grande conjunto de strings. Útil para buscas rápidas de prefixos.

Heap / Priority Queue (Heap / Fila de Prioridade)

Estrutura de dados especializada para acessar o elemento mínimo ou máximo rapidamente. Usada em algoritmos como o de Dijkstra.

Intervals (Intervalos)

Usado em problemas que envolvem intervalos de tempo ou espaço. Comumente usado em problemas de agendamento.

Greedy (Guloso)

Algoritmo que faz a escolha local ótima em cada etapa. Usado em problemas como o de troca de moedas ou mochila.

Backtracking (Retrocesso)

Técnica para resolver problemas de decisão, explorando todas as possibilidades. Usada em problemas como o das N Rainhas ou Sudoku.

Graphs (Grafos)

Estrutura de dados que representa relações entre pares de objetos. Usado em algoritmos de busca e caminhos mínimos.

Advanced Graphs (Grafos Avançados)

Algoritmos avançados como Fluxo Máximo, Caminho Mínimo, etc. Usados em problemas complexos de redes.

1-D DP (Programação Dinâmica em 1D)

Técnica de otimização que resolve problemas dividindo-os em subproblemas menores. Usada em problemas como Fibonacci, subsequência crescente máxima, etc.

2-D DP (Programação Dinâmica em 2D)

Extensão da DP para duas dimensões. Usada em problemas como alinhamento de sequências, mochila 2D, etc.

Math & Geometry (Matemática & Geometria)

Algoritmos que envolvem conceitos matemáticos ou geométricos. Usados em problemas de otimização espacial e cálculos matemáticos.

Bit Manipulation (Manipulação de Bits)

Técnica que envolve operações bit a bit. Usada em problemas que requerem eficiência no espaço ou em algoritmos criptográficos.