150 principais entrevistasMédio

Ladrão de casa

Guia detalhado e implementação de Python para o problema 'House Robber'.

Declaração do problema

Médio

Você é um ladrão profissional que planeja roubar casas ao longo de uma rua. Cada casa tem uma certa quantia de dinheiro escondida, a única restrição que o impede de roubar cada uma delas é que as casas adjacentes têm sistemas de segurança conectados e entrará em contato automaticamente com a polícia se duas casas adjacentes forem arrombadas na mesma noite.

Dado um array inteiro nums representando a quantidade de dinheiro de cada casa, retorne a quantia máxima de dinheiro que você pode roubar esta noite sem alertar a polícia.

Escreva uma função rob(nums: List[int]) -> int.

Restrições
  • 1 <= len(nums) <= 100
  • 0 <= nums[i] <= 400

Exemplos

Example 1
Input
nums = [1,2,3,1]
Output
4
Explanation

Rob house 1 (money = 1) then rob house 3 (money = 3). Total = 1 + 3 = 4.

Example 2
Input
nums = [2,7,9,3,1]
Output
12
Explanation

Rob house 1 (money = 2), rob house 3 (money = 9) and rob house 5 (money = 1). Total = 12.

Need a Hint?
Considere usar estruturas de dados 1D específicas de DP, como conjuntos ou heaps.
Edge Cases to Watch
  • Estruturas de entrada vazias
  • Entradas de elemento único
  • Grandes limites numéricos

Pronto para resolver?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Abrir no Editor
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Recursos Python recomendados

Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.