Perguntas de entrevista DSA

Por Aaron Cao · Atualizado em

Perguntas de entrevista DSA
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.

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?

Cobrir os padrões importa mais do que a quantidade. Quem consegue reconhecer e implementar cada um dos padrões acima, e explicá-lo em voz alta, está mais preparado do que alguém com um total muito maior resolvido em silêncio.

Programação dinâmica é obrigatória na maioria das entrevistas?

Ela aparece regularmente, mas é um padrão entre muitos e raramente ocupa a rodada inteira. Dominar arrays, hashing, árvores e grafos cobre mais terreno do que priorizar a programação dinâmica acima deles.

Devo informar a complexidade sem que perguntem?

Sim. Informar a complexidade de tempo e espaço ao propor a abordagem, e novamente ao terminar, é tratado como parte de uma resposta completa, não como bônus.

E se eu não encontrar a solução ótima?

Diga isso, implemente a solução funcional que você tem, e nomeie o que a torna subótima. Uma resposta correta com uma declaração honesta de complexidade pontua melhor do que o silêncio gasto procurando a solução ideal.

Um assistente de IA pode ajudar em uma rodada DSA?

Somente quando a rodada é uma conversa falada ao vivo, e mesmo assim gravação, compartilhamento de tela ou monitoramento a descartam. Avaliações digitadas no navegador estão fora de escopo, e código colado dispara alertas de similaridade.

Perguntas relacionadas

← Mais sobre Perguntas de entrevista por cargo e tema