Carregando
0x00Lição 1 de 13

Resolva problemas em voz alta

Use uma rotina repetível, das perguntas de esclarecimento até o código testado.

20 min Questionário com 5 perguntas 1 exercício de código
Ao final desta lição, você saberá
  • 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

  1. 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.
  2. 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.
  3. 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.
  4. Otimize. Procure trabalho repetido. Que estrutura de dados ou padrão o elimina? Diga a nova complexidade de tempo e de espaço.
  5. Programe. Escreva código limpo, com bons nomes, narrando enquanto avança.
  6. Teste. Rastreie o código à mão num exemplo e nos casos extremos, e corrija os bugs com calma.
solution.py
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]))
Saída
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.

Exercício 1

Trate os casos extremos

+25 XP

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
main.py
Carregando editor…

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…