150 najlepszych wywiadówŚredni

Rabuś domu

Szczegółowy przewodnik i implementacja Python dla problemu „Włamywacza”.

Oświadczenie o problemie

Średni

Jesteś zawodowym rabusiem planującym okradać domy wzdłuż ulicy. W każdym domu przechowywana jest określona ilość pieniędzy. Jedynym ograniczeniem, które powstrzymuje Cię przed okradzeniem każdego z nich, jest to, że sąsiednie domy mają podłączone systemy bezpieczeństwa i automatycznie skontaktuje się z policją, jeśli tej samej nocy włamano się do dwóch sąsiednich domów.

Biorąc pod uwagę tablicę liczb całkowitych nums reprezentującą kwotę pieniędzy w każdym domu, zwróć maksymalną kwotę pieniędzy, jaką możesz obrabować dziś wieczorem, bez powiadamiania policji.

Napisz funkcję rob(nums: List[int]) -> int.

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

Przykłady

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?
Rozważ użycie struktur danych specyficznych dla 1D DP, takich jak zestawy lub sterty.
Edge Cases to Watch
  • Puste struktury wejściowe
  • Wejścia jednoelementowe
  • Duże granice liczbowe

Gotowy do rozwiązania?

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

Otwórz w Edytorze
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

Polecane zasoby Pythona

Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.