Top 150-InterviewMittel

Hausräuber II

Detaillierte Anleitung und Python-Implementierung für das Problem „Hausräuber II“.

Problemstellung

Mittel

Sie sind ein professioneller Räuber, der Häuser entlang einer Straße ausrauben will. In jedem Haus ist ein bestimmter Geldbetrag hinterlegt. Alle Häuser an diesem Ort sind kreisförmig angeordnet. Das heißt, das erste Haus ist der Nachbar des letzten. Mittlerweile sind benachbarte Häuser mit einem Sicherheitssystem ausgestattet, das automatisch die Polizei verständigt, wenn in derselben Nacht in zwei benachbarte Häuser eingebrochen wird.

Geben Sie anhand eines ganzzahligen Arrays, das den Geldbetrag jedes Hauses darstellt, den maximalen Geldbetrag zurück, den Sie heute Nacht ausrauben können, ohne die Polizei zu alarmieren.

Schreiben Sie eine Funktion rob(nums: List[int]) -> int.

Einschränkungen
  • 1 <= len(nums) <= 100
  • 0 <= nums[i] <= 1000

Beispiele

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

You cannot rob house 1 and house 3 because they are adjacent in the circular layout.

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

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

Need a Hint?
Erwägen Sie die Verwendung von 1D-DP-spezifischen Datenstrukturen wie Sets oder Heaps.
Edge Cases to Watch
  • Leere Eingabestrukturen
  • Einzelelementeingaben
  • Große numerische Grenzen

Bereit zur Lösung?

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

Im Editor öffnen
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

Empfohlene Python-Ressourcen

Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.