Entrevista técnica

O plano de 30 dias para passar no teste de algoritmos.

6 etapas de 5 dias, de 1 a 2 horas por dia. Cada dia tem o problema exato (nome e número no LeetCode, todos gratuitos) e o material grátis para estudar. Todo problema: 25 minutos sozinho. Travou? Veja a solução, feche e reescreva do zero no dia seguinte.

As etapasArrays e hashDois ponteiros e janelaPilha e busca bináriaListas ligadas e árvoresGrafos e heapProgramação dinâmica, revisão e simulação

Teste de algoritmos é a porta das melhores vagas. Na mentoria, eu monto o plano de estudo para a vaga que você quer.

Etapa01

Dias 1 a 5

Arrays e hash

Estude: Big-O e quando trocar um loop duplo por um mapa (hash map / set).

Dia 01: Big-O na prática: leia o Big-O Cheat Sheet e diga a complexidade de 5 funções do seu próprio código.

Dia 02: Two Sum (LeetCode 1) e Contains Duplicate (217): primeiro na força bruta, depois com hash map.

Dia 03: Valid Anagram (242) e Group Anagrams (49).

Dia 04: Top K Frequent Elements (347) e Product of Array Except Self (238).

Dia 05: Longest Consecutive Sequence (128) + refaça o Two Sum e o Group Anagrams sem olhar.

Prova da etapa: Explique em voz alta, em 2 minutos, por que o hash map deixa o Two Sum em O(n).

Material grátis: Arrays — Tech Interview Handbook ↗ · Hash table — Tech Interview Handbook ↗ · Big-O Cheat Sheet ↗

Etapa02

Dias 6 a 10

Dois ponteiros e janela (sliding window)

Estude: Dois ponteiros andando no array e a janela que cresce e encolhe.

Dia 06: Valid Palindrome (125) e Two Sum II (167).

Dia 07: 3Sum (15).

Dia 08: Container With Most Water (11).

Dia 09: Best Time to Buy and Sell Stock (121) e Longest Substring Without Repeating Characters (3).

Dia 10: Longest Repeating Character Replacement (424) + escreva em uma linha quando usar cada padrão.

Prova da etapa: Resolva o 3Sum do zero em até 30 minutos.

Material grátis: Strings — Tech Interview Handbook ↗ · NeetCode Roadmap (trilha por padrão, com vídeo) ↗

Etapa03

Dias 11 a 15

Pilha e busca binária

Estude: Quando usar pilha (e pilha monotônica) e como cortar o espaço de busca pela metade.

Dia 11: Valid Parentheses (20) e Min Stack (155).

Dia 12: Daily Temperatures (739): pilha monotônica.

Dia 13: Binary Search (704) e Search a 2D Matrix (74).

Dia 14: Find Minimum in Rotated Sorted Array (153) e Search in Rotated Sorted Array (33).

Dia 15: Koko Eating Bananas (875): busca binária na resposta + revisão da etapa.

Prova da etapa: Escreva a busca binária sem erro de limite (left, right, mid) de primeira.

Material grátis: Stack — Tech Interview Handbook ↗ · Sorting and searching — Tech Interview Handbook ↗ · VisuAlgo (estruturas animadas) ↗

Etapa04

Dias 16 a 20

Listas ligadas e árvores

Estude: Ponteiros em lista ligada, recursão, DFS e BFS em árvore.

Dia 16: Reverse Linked List (206) e Merge Two Sorted Lists (21).

Dia 17: Linked List Cycle (141) e Remove Nth Node From End of List (19).

Dia 18: Invert Binary Tree (226) e Maximum Depth of Binary Tree (104): DFS recursivo.

Dia 19: Binary Tree Level Order Traversal (102): BFS com fila.

Dia 20: Validate Binary Search Tree (98) e Lowest Common Ancestor of a BST (235).

Prova da etapa: Resolva o mesmo problema de árvore com DFS e com BFS e compare.

Material grátis: Linked list — Tech Interview Handbook ↗ · Tree — Tech Interview Handbook ↗ · VisuAlgo: árvore binária de busca ↗

Etapa05

Dias 21 a 25

Grafos e heap

Estude: BFS e DFS em grafo, ordenação topológica e fila de prioridade (heap).

Dia 21: Number of Islands (200).

Dia 22: Clone Graph (133) e Max Area of Island (695).

Dia 23: Rotting Oranges (994): BFS com várias origens.

Dia 24: Course Schedule (207): ordenação topológica e detecção de ciclo.

Dia 25: Kth Largest Element in an Array (215) e K Closest Points to Origin (973): heap.

Prova da etapa: Desenhe o grafo do Course Schedule no papel antes de codar.

Material grátis: Graph — Tech Interview Handbook ↗ · Heap — Tech Interview Handbook ↗ · VisuAlgo: DFS e BFS ↗ · Abdul Bari: playlist de algoritmos (YouTube) ↗

Etapa06

Dias 26 a 30

Programação dinâmica, revisão e simulação

Estude: DP básica (1D) e os problemas que você mais errou no mês.

Dia 26: Climbing Stairs (70) e House Robber (198).

Dia 27: Coin Change (322).

Dia 28: Simulação 1: 2 problemas médios sorteados desta lista, 45 minutos, falando em voz alta e gravando a tela.

Dia 29: Refaça os 5 problemas que você mais errou no mês, sem olhar a solução.

Dia 30: Simulação 2 com outra pessoa (um colega ou a comunidade) + liste os padrões que você já domina.

Prova da etapa: 2 simulações completas, gravadas, com a complexidade dita em voz alta.

Material grátis: Dynamic programming — Tech Interview Handbook ↗ · Técnicas para a entrevista de código — Tech Interview Handbook ↗ · Mock interviews — Tech Interview Handbook ↗

Júnior resolve aleatório. Sênior domina padrões.

O júnior resolve 300 problemas aleatórios. O sênior domina 15 padrões e explica a complexidade antes de codar.

Na entrevista: entenda o problema → dê um exemplo → força bruta → padrão → código → teste com caso de borda → complexidade.

Links grátis para o mês inteiro: NeetCode Practice: Blind 75 e NeetCode 150, grátis, com vídeo de cada problema ↗ · NeetCode Roadmap: a trilha por padrão ↗ · Grind 75: plano semanal gratuito (Tech Interview Handbook) ↗ · Algorithms study cheatsheet (Tech Interview Handbook) ↗ · Canal do NeetCode no YouTube (soluções explicadas) ↗ · MIT 6.006 Introduction to Algorithms (aulas grátis, em inglês) ↗

Conteúdo sobre carreira dev, todo dia: @lucasadvice ↗

Mentoria

Passe no teste e chegue à proposta

Quem resolve explicando passa para a próxima fase, e é lá que se negocia o salário. A mentoria acelera esse caminho: plano de estudo para a vaga que você quer, LinkedIn que mostra o seu trabalho e as empresas certas para conversar.