Resolva problemas em voz alta
Use uma rotina repetível, das perguntas de esclarecimento até o código testado.
- Seguir uma rotina passo a passo para qualquer problema de programação.
- Encontrar casos extremos antes de escrever código.
- Comunicar o seu raciocínio enquanto trabalha.
Numa entrevista de programação, você resolve um problema de algoritmos em 35 a 45 minutos, geralmente num editor compartilhado, enquanto explica o seu raciocínio. Os entrevistadores avaliam mais do que o código final: eles observam como você entende o problema, como raciocina até uma solução eficiente, quão limpo e correto é o seu código e como você o testa. Uma rotina fixa mantém você calmo e deixa esse raciocínio visível.
Uma rotina para todo problema
- Esclareça. Reformule o problema. Pergunte sobre o tamanho da entrada, os intervalos de valores, duplicatas, entrada vazia e o formato esperado da saída.
- Trabalhe com exemplos. Resolva um exemplo pequeno à mão e depois liste os casos extremos: vazio, um elemento, todos iguais, números negativos, entrada muito grande.
- Comece pela força bruta. Diga a abordagem correta mais simples e a complexidade dela, mesmo que seja lenta. Isso prova que você entendeu o problema.
- Otimize. Procure trabalho repetido. Que estrutura de dados ou padrão o elimina? Diga a nova complexidade de tempo e de espaço.
- Programe. Escreva código limpo, com bons nomes, narrando enquanto avança.
- Teste. Rastreie o código à mão num exemplo e nos casos extremos, e corrija os bugs com calma.
1def second_largest(nums):
2 distinct = sorted(set(nums))
3 if len(distinct) < 2:
4 return None # edge case found while clarifying
5 return distinct[-2]
6
7print(second_largest([3, 1, 4, 1, 5]))
8print(second_largest([7, 7, 7]))4 None
Perguntas de esclarecimento muitas vezes mudam o problema. O “segundo maior” de [7, 7, 7] pode ser 7 ou “não existe”. Perguntar transforma uma armadilha escondida numa decisão explícita - e os entrevistadores deixam essas lacunas de propósito para ver se você as percebe.
Principais conclusões
Esclareça, trabalhe com exemplos, força bruta, otimize, programe, teste.
Casos extremos encontrados cedo viram parte do projeto, não bugs depois.
Narre o seu raciocínio para o entrevistador poder acompanhar e ajudar.
Quiz da aula
5 perguntas · aprovação com 4 acertos · até 50 XP
Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.
Pratique: resolva problemas de entrevistas técnicas
Resolva um problema clássico de entrevista em Python e execute-o com casos de teste. Busque a complexidade ideal e depois confira os casos extremos. Os exercícios rodam localmente no navegador.
Trate os casos extremos
Leia uma linha de inteiros separados por espaços (ela pode estar vazia). Imprima o segundo maior valor distinto, ou none se houver menos de dois valores distintos.
- Entrada típica
- Todos iguais
- Entrada vazia
O Python é executado em um ambiente isolado no navegador, com limite de 60 segundos. O runtime é carregado pelo CDN do Pyodide; seu código permanece neste navegador.
Dúvidas sobre esta lição
Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.
Carregando publicações…