Top 150 des entrevuesMoyen

Voleur de maison

Guide détaillé et implémentation de Python pour le problème 'House Robber'.

Énoncé du problème

Moyen

Vous êtes un voleur professionnel qui envisage de cambrioler des maisons le long d'une rue. Chaque maison a une certaine somme d'argent cachée, la seule contrainte qui vous empêche de cambrioler chacune d'elles est que les maisons adjacentes ont des systèmes de sécurité connectés et il contactera automatiquement la police si deux maisons adjacentes ont été cambriolées la même nuit.

Étant donné un tableau de nombres entiers représentant le montant d'argent de chaque maison, renvoyez le montant maximum d'argent que vous pouvez voler ce soir sans alerter la police.

Écrivez une fonction rob(nums: List[int]) -> int.

Contraintes
  • 1 <= len(nums) <= 100
  • 0 <= nums[i] <= 400

Exemples

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?
Pensez à utiliser des structures de données 1D spécifiques à DP, comme des ensembles ou des tas.
Edge Cases to Watch
  • Structures d'entrée vides
  • Entrées à élément unique
  • Grandes limites numériques

Prêt à résoudre ?

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

Ouvrir dans l'éditeur
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

Ressources Python recommandées

Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.