From a707ad0f007c9cb49bc122ba2e1a069d59a85816 Mon Sep 17 00:00:00 2001 From: Deven <63876261+devenperez@users.noreply.github.com> Date: Wed, 10 Sep 2025 21:16:05 -0400 Subject: [PATCH] Time: 0 ms (100%), Space: 12.3 MB (83.67%) - LeetHub --- 0198-house-robber/0198-house-robber.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 0198-house-robber/0198-house-robber.py diff --git a/0198-house-robber/0198-house-robber.py b/0198-house-robber/0198-house-robber.py new file mode 100644 index 0000000..a60bc6e --- /dev/null +++ b/0198-house-robber/0198-house-robber.py @@ -0,0 +1,25 @@ +class Solution(object): + def rob(self, nums): + """ + :type nums: List[int] + :rtype: int + """ + if len(nums) == 1: + return nums[0] + + # Subproblem: only nums 0 to i exist and i is always robbed + dp = [0] * len(nums) + + for i, money in enumerate(nums): + if i == 0 or i == 1: + dp[i] = nums[i] + continue + + if i == 2: + dp[i] = nums[i] + dp[i - 2] + continue + + dp[i] = nums[i] + max(dp[i - 2], dp[i - 3]) + + return max(dp[-1], dp[-2]) + \ No newline at end of file