Perguntas de entrevista DSA
Por Aaron Cao · Atualizado em

As entrevistas de DSA reaproveitam um pequeno conjunto de padrões em vez de centenas de problemas únicos. Espere arrays e strings, two pointers e sliding window, hashing, busca binária, árvores e grafos, heaps e programação dinâmica, apresentados como problemas ao vivo nos quais você deve explicar seu raciocínio enquanto resolve.
O que uma entrevista DSA realmente avalia?
Você já resolveu algumas centenas de problemas e ainda se sente despreparado, o que geralmente significa que você tem praticado a metade errada do exercício. Esta seção nomeia o que está sendo avaliado, para que a prática possa se alinhar a isso.
Uma rodada ao vivo de estruturas de dados e algoritmos mede quatro coisas ao mesmo tempo: se você reconhece a qual padrão o problema pertence, se consegue expor a abordagem antes de escrever o código, se a implementação está correta nos limites, e se você consegue raciocinar sobre a complexidade em voz alta. Candidatos otimizam o terceiro ponto e negligenciam o segundo, e depois são penalizados por uma solução correta que chegou sem explicação.
Essa etapa de reconhecimento é a razão pela qual praticar padrões supera resolver muitos problemas. Os problemas raramente são inéditos; são recombinações. Assim que você conseguir dizer isto é uma sliding window sobre um mapa de frequências dentro do primeiro minuto, o resto é execução. Bancos de questões relacionados por linguagem e cargo ficam no hub de perguntas de entrevista.
Quais padrões você deve conhecer?
Esses padrões respondem pela maioria do que é perguntado. Aprenda a reconhecer o sinal que aponta para cada um deles.
- Two pointers. Entrada ordenada, somas de pares, particionamento in-place, verificação de palíndromos.
- Sliding window. Subarray contíguo mais longo ou mais curto sob uma restrição.
- Contagem com hash map. Anagramas, duplicatas, comparações de frequência, primeiro elemento único.
- Busca binária. Arrays ordenados, e busca no espaço de respostas quando o array não está ordenado.
- Busca em largura e em profundidade. Árvores, grades, componentes conexos, caminho mais curto sem peso.
- Heap e fila de prioridade. Problemas dos k maiores, mesclagem de fluxos ordenados, medianas em tempo real.
- Intervalos. Mesclar, inserir e detectar sobreposição após ordenar pelo início.
- Programação dinâmica. Subproblemas sobrepostos: subir escadas, troco de moedas, distância de edição, subsequências.
- Backtracking. Permutações, combinações, subconjuntos, quebra-cabeças com restrições.
- Algoritmos de grafos. Ordenação topológica, union-find, caminho mais curto com peso.
Quais perguntas aparecem por tema?
Enunciados representativos, formulados como os entrevistadores costumam formular:
- Encontre dois números em um array cuja soma seja um valor alvo, e depois faça isso sem espaço extra.
- Retorne o comprimento da substring mais longa sem caracteres repetidos.
- Dado um array ordenado e rotacionado, encontre um valor alvo em tempo logarítmico.
- Mescle intervalos sobrepostos e explique por que vale a pena o custo de ordenar.
- Inverta uma árvore binária e depois encontre sua profundidade máxima.
- Valide uma árvore binária de busca e diga o que uma verificação ingênua deixa passar.
- Conte as ilhas em uma grade e depois diga como você lidaria com uma grade grande demais para a memória.
- Encontre os k elementos mais frequentes e justifique sua estrutura de dados.
- Calcule o número mínimo de moedas para um valor e apresente a recorrência.
- Detecte um ciclo em uma lista encadeada e depois retorne o nó onde ele começa.
- Serialize e desserialize uma árvore binária.
- Dados os pré-requisitos de cursos, decida se o cronograma é possível.
Um recém-formado entrevistando para uma vaga de backend recebe o problema da substring e começa a digitar imediatamente. O código está quase certo, mas o entrevistador passa a rodada perguntando o que ele faz, e a nota reflete o silêncio, não o bug. Um candidato que gasta quarenta segundos dizendo janela sobre um mapa de caracteres, expando à direita, contraio à esquerda ao encontrar uma duplicata, mantenho o máximo já superou a parte mais difícil de recuperar.
Como praticar falar enquanto resolve?
Resolver em silêncio cria o reflexo errado. A rodada ao vivo exige narrar e codar ao mesmo tempo, e isso é uma habilidade separada de cada uma isoladamente.
Mude o exercício, não a lista de problemas. Antes de escrever qualquer coisa, diga em voz alta o padrão, a abordagem e a complexidade esperada. Escreva o código enquanto continua narrando. Ao terminar, diga a complexidade novamente e nomeie um caso extremo que você tratou e outro que você perguntaria. Fazer isso em dez problemas desenvolve mais capacidade de entrevista do que resolver cinquenta em silêncio.
Uma sessão de entrevista simulada fornece as perguntas de acompanhamento, a parte que não pode ser ensaiada sozinho, e te dá uma gravação da sua própria narração para revisar. Um limite honesto se aplica sempre: uma avaliação de código digitada no navegador, com monitoramento, não é uma conversa, e nenhum assistente ao vivo tem lugar nela. O hub de tipos de entrevista mostra quais formatos de código são ao vivo e quais são automatizados.
FAQ
Quantos problemas devo resolver antes de uma entrevista DSA?
Programação dinâmica é obrigatória na maioria das entrevistas?
Devo informar a complexidade sem que perguntem?
E se eu não encontrar a solução ótima?
Um assistente de IA pode ajudar em uma rodada DSA?
Perguntas relacionadas
- Quais perguntas são feitas em uma entrevista em vídeo do HireVue?
- Que perguntas são feitas em uma entrevista da AWS?
- Quais perguntas são feitas em uma entrevista de vendas?
- Quais perguntas de entrevista de Power BI são realmente feitas?
- Quais perguntas são feitas em uma entrevista de atendimento ao cliente?
- Quais perguntas são feitas em uma entrevista de emprego em uma ONG?