From 28bfce5243b1c3005989d2e90f9c0e39fd4acca3 Mon Sep 17 00:00:00 2001 From: Deven <63876261+devenperez@users.noreply.github.com> Date: Wed, 10 Sep 2025 21:20:41 -0400 Subject: [PATCH] Time: 0 ms (100%), Space: 12.6 MB (14.83%) - LeetHub --- 0198-house-robber/0198-house-robber.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/0198-house-robber/0198-house-robber.py b/0198-house-robber/0198-house-robber.py index a60bc6e..0a3159a 100644 --- a/0198-house-robber/0198-house-robber.py +++ b/0198-house-robber/0198-house-robber.py @@ -4,21 +4,19 @@ class Solution(object): :type nums: List[int] :rtype: int """ - if len(nums) == 1: - return nums[0] + + if len(nums) < 3: + return max(nums) # 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 + dp[0] = nums[0] + dp[1] = nums[1] + dp[2] = nums[2] + nums[0] - if i == 2: - dp[i] = nums[i] + dp[i - 2] - continue + for i in range(3, len(nums)): dp[i] = nums[i] + max(dp[i - 2], dp[i - 3]) return max(dp[-1], dp[-2])