Do zero à entrevista
Siga na ordem ou pule direto para o que você precisa. Seu progresso fica salvo neste navegador, sem login, sem conta.
Introdução
0/1Arrays e Strings
0/7A estrutura sequencial base: acesso por índice em O(1).
Manipulação e processamento de texto e caracteres.
Dois índices caminhando na mesma passada. Em array ordenado, um começa na ponta esquerda e o outro na direita, e eles convergem.
Tamanho travado em k: entra um elemento pela direita, sai um pela esquerda. O(n) sem refazer conta.
A direita sempre avança; a esquerda encolhe só enquanto a janela é inválida. Resolve 'maior substring sem repetir' e 'menor subarray com soma ≥ alvo'.
Somas de intervalo em tempo constante depois de um pré-processamento.
Merge, insert e agendamento: ordenar por início e varrer os intervalos.
Hashing
0/1Listas Encadeadas
0/2Pilhas e Filas
0/2Recursão
0/2Árvores
0/5Pré, in, pós-ordem e por nível.
Recursão estrutural sobre dois filhos.
Nós com qualquer número de filhos.
Ordem invariante para busca em O(log n).
Árvore de prefixos para busca de strings, autocomplete e dicionários.
Grafos
0/9Vértices, arestas e representação (matriz / lista de adjacência).
Os dois jeitos de percorrer um grafo.
Caminho mais curto com pesos não-negativos.
Caminho mais curto que aceita pesos negativos.
Pathfinding guiado por heurística.
Menor caminho entre todos os pares de vértices, em O(V³).
Ordem linear de um DAG (Kahn e DFS).
Conectar tudo com o menor custo: Kruskal e Prim.
Componentes fortemente conexos, pontes, pontos de articulação e union-find.
Heaps
0/2Busca Binária
0/2Ordenação
0/7Bubble, Selection e Insertion Sort, os O(n²) que ensinam a base.
Divisão e conquista, estável, O(n log n).
Particiona em torno de um pivô. O(n log n) na média.
Insertion Sort turbinado com gap sequences.
Ordenação linear por contagem, sem comparações, para inteiros num intervalo.
Ordena dígito a dígito usando counting sort como base.
Distribui em baldes, ordena cada um e concatena.