Time: 0 ms (100%), Space: 12.6 MB (14.83%) - LeetHub

This commit is contained in:
Deven
2025-09-10 21:20:41 -04:00
parent 488fda396f
commit 28bfce5243
+7 -9
View File
@@ -4,21 +4,19 @@ class Solution(object):
:type nums: List[int] :type nums: List[int]
:rtype: 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 # Subproblem: only nums 0 to i exist and i is always robbed
dp = [0] * len(nums) dp = [0] * len(nums)
for i, money in enumerate(nums): dp[0] = nums[0]
if i == 0 or i == 1: dp[1] = nums[1]
dp[i] = nums[i] dp[2] = nums[2] + nums[0]
continue
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]) dp[i] = nums[i] + max(dp[i - 2], dp[i - 3])
return max(dp[-1], dp[-2]) return max(dp[-1], dp[-2])