██████╗ ██████╗ ██╗██████╗
██╔════╝ ██╔══██╗██║██╔══██╗
██║ ███╗██████╔╝██║██║ ██║
██║ ██║██╔══██╗██║██║ ██║
╚██████╔╝██║ ██║██║██████╔╝
╚═════╝ ╚═╝ ╚═╝╚═╝╚═════╝
██████╗ ██╗ ██╗███╗ ██╗███╗ ██╗███████╗██████╗
██╔══██╗██║ ██║████╗ ██║████╗ ██║██╔════╝██╔══██╗
██████╔╝██║ ██║██╔██╗ ██║██╔██╗ ██║█████╗ ██████╔╝
██╔══██╗██║ ██║██║╚██╗██║██║╚██╗██║██╔══╝ ██╔══██╗
██║ ██║╚██████╔╝██║ ╚████║██║ ╚████║███████╗██║ ██║
╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═══╝╚══════╝╚═╝ ╚═╝
jack in. rode os algoritmos step by step e veja a memória sendo alocada
Visualizador interativo dos algoritmos mais famosos. Cada módulo executa o algoritmo passo a passo: você navega pelos steps, vê a linha de código ativa, os registradores e cada célula de memória sendo lida e escrita.
// DYNAMIC PROGRAMMING
Climbing Stairs
Subir 1 ou 2 degraus por vez: Fibonacci disfarçado, de O(n) para O(1) com duas variáveis.
● ONLINE · MATRIZ · ARRAY · MEMOEASYPascal's Triangle
Cada número é a soma dos dois de cima: C(i, j) linha a linha, num array só (de trás para frente) ou sob demanda.
● ONLINE · MATRIZ · ARRAY · MEMOMEDIUMKnapsack 0/1
Escolher itens com peso e valor para maximizar o valor sem estourar a mochila.
● ONLINE · MATRIZ · ARRAY · MEMOMEDIUMCoin Change
Menor número de moedas para formar um valor: knapsack ilimitado, com o loop para frente.
● ONLINE · MATRIZ · ARRAY · MEMOMEDIUMPredict the Winner
Jogo de duas pontas: dp[i][j] = melhor diferença de pontos no intervalo.
● ONLINE · MATRIZ · ARRAY · MEMOMEDIUMStone Game
Pilhas de pedras nas pontas: mesma DP de intervalo, e um atalho que sempre dá true.
● ONLINE · MATRIZ · ARRAY · MEMOMEDIUMStock com Cooldown
Comprar e vender ações com um dia de cooldown: máquina de 3 estados.
● ONLINE · MATRIZ · ARRAY · MEMO · BINÁRIAMEDIUMLIS
Maior subsequência crescente: O(n²) com dp[i] e O(n log n) com busca binária em tails.
● ONLINE · MATRIZ · ARRAY · MEMOMEDIUMLCS
Maior subsequência comum entre duas strings: diagonal + 1 quando casa, e o caminho de volta revela qual é.
● ONLINE · MATRIZ · MEMOHARDBurst Balloons
Estourar balões para juntar moedas: a DP de intervalo pensando em quem estoura por último.
● ONLINE · MATRIZ · ARRAY · MEMOHARDRegex Matching
Casamento de padrões com '.' e '*' usando uma tabela booleana.
Nenhum desafio desse nível nesta seção.
// GRAFOS · DFS × BFS
Flood Fill
O balde de tinta: repinta a região conectada à célula inicial.
● ONLINE · DFS · BFSEASYFind if Path Exists
Alcançabilidade num grafo não dirigido, com componentes separadas.
● ONLINE · DFS · BFSMEDIUMNumber of Islands
Contar componentes conexos numa grade: a busca afunda cada ilha encontrada.
● ONLINE · DFS · BFSMEDIUMMax Area of Island
A busca devolve o tamanho da ilha: soma de 1 + vizinhos.
● ONLINE · DFS · BFSMEDIUMRotting Oranges
BFS multi-origem por minutos; a DFS precisa revisitar para achar o menor tempo.
● ONLINE · DFS · BFSMEDIUMPacific Atlantic
Busca reversa: sobe a partir das bordas de cada oceano e cruza os resultados.
● ONLINE · DFS · BFSMEDIUMKeys and Rooms
Cada chave é uma aresta dirigida: dá para abrir todas as salas?
● ONLINE · DFS · BFSMEDIUMIs Graph Bipartite
Pintar com 2 cores: um ciclo ímpar torna impossível.
● ONLINE · DFS · BFSMEDIUMCourse Schedule
Detectar ciclo num grafo dirigido: DFS com 3 estados × BFS de Kahn.
● ONLINE · DFS · BFSHARDMaking a Large Island
Rotula ilhas, depois testa cada água somando ilhas vizinhas distintas.
Nenhum desafio desse nível nesta seção.
// EM BREVE
Sorting
Bubble, merge, quick sort.
Binary Search
Divisão e conquista em O(log n).