Le migliori 150 intervisteMedio

Ladro di case

Guida dettagliata e implementazione Python per il problema del "Ladro di case".

Dichiarazione del problema

Medio

Sei un ladro professionista che pianifica di derubare le case lungo una strada. Ogni casa ha una certa somma di denaro nascosta, l'unico vincolo che ti impedisce di derubarle è che le case adiacenti hanno sistemi di sicurezza collegati e contatterà automaticamente la polizia se due case adiacenti vengono scassinate nella stessa notte.

Dato un array di numeri interi che rappresentano la quantità di denaro di ciascuna casa, restituisci la quantità massima di denaro che puoi derubare stasera senza allertare la polizia.

Scrivi una funzione rob(nums: List[int]) -> int.

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

Esempi

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?
Prendi in considerazione l'utilizzo di strutture dati specifiche per DP 1D come set o heap.
Edge Cases to Watch
  • Strutture di input vuote
  • Ingressi a elemento singolo
  • Grandi limiti numerici

Pronto a risolvere?

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

Apri nell'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

Risorse Python consigliate

Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.